的Dyanamic執行,我有以下的JavaScript:javascript代碼
var djs = function (ob) {
return {
remove: function() { //removes element
if (is_array(ob)) {
for (var i = 0; i < ob.length; i++)
ob[i].parentNode.removeChild(ob[i]);
} else {
ob.parentNode.removeChild(ob);
}
},
empty: function() { //makes element empty
if (is_array(ob)) {
for (var i = 0; i < ob.length; i++)
ob[i].innerHTML = "";
} else {
ob.innerHTML = ""
}
},
html: function (str) { //gets or sets innerHTML
if (str) {
if (is_array(ob)) {
for (var i = 0; i < ob.length; i++)
ob[i].innerHTML = str;
} else {
ob.innerHTML = str;
}
} else {
if (is_array(ob)) {
for (var i = 0; i < ob.length; i++)
rob += ob[i].innerHTML;
return rob;
} else {
return ob.innerHTML;
}
}
}
}
}
這裏的每一個我檢查是否ob
時間爲數組或不和執行代碼。我希望儘量減少這一點,等代替:
if (is_array(ob)) {
for (var i = 0; i < ob.length; i++)
ob[i].parentNode.removeChild(ob[i]);
} else {
ob.parentNode.removeChild(ob);
}
我想使用的功能類似,doEval(ob,code,return)
,在這種情況下,
doEval(ob,"parentNode.removeChild("+ob+")",NULL);
如果我指定像
innerHTML
任何
「迴歸」參數將返回。任何人都可以幫忙嗎?
看起來你有一個PHP口音 – 2011-02-27 19:49:00
我認爲你可以用[高階函數](http://spheredev.org/wiki/Higher-order_programming_in_JavaScript)來做到這一點,但Javascript也有一個[eval]( http://www.w3schools.com/jsref/jsref_eval.asp)函數。 – 2011-02-27 19:49:57