比如我有一个动态生成的javascript语句 "this.value= 123;"<input id="text" type="text" value="" />以前用的是一个比较笨的方法var str = "this.value=\123\";
var obj = document.getElementById("text");
eval("obj.temp = function(){" + str + "}");
eval("obj.temp()");
delete obj.temp;其实就是希望在方法中能得到this这个指针, 指向dom节点运行可以成功
但是总觉得不合理, 而且最后一句会导致未知错误,导致后面的语句都不运行了
var obj = document.getElementById("text");
eval("obj.temp = function(){" + str + "}");
eval("obj.temp()");
delete obj.temp;其实就是希望在方法中能得到this这个指针, 指向dom节点运行可以成功
但是总觉得不合理, 而且最后一句会导致未知错误,导致后面的语句都不运行了
//这样呢?
function temp(){
alert(this);
}
temp.call(document.getElementById("text"));
为什么不能document.getElemenetById().value = "123"呢
比如j就是一个json后的对象
我直接就可以在方法中使用 product_price这个参数了
var obj = document.getElementById("text");
var j = {product_price : 123}
for(var p in j){
if(argName != ""){
argName += ",";
argValue += ",";
}
argName += p;
argValue += "j[\"" + p + "\"]";
}
if(method[name]["end"] != undefined){
eval("obj.end = function(" + argName + "){" + method[name]["end"] + "}") ;
eval("obj.end(" + argValue + ")");
delete obj.end;
}