javascript代码的动态执行
我有以下JavaScript:javascript代码的动态执行,javascript,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]);
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;
}
}
}
}
}
我想使用一个函数,比如,doEval(ob,code,return)
,在本例中
doEval(ob,"parentNode.removeChild("+ob+")",NULL);
如果我指定任何类似innerHTML
,则“return”参数将返回。有人能帮忙吗?试试这个:
function doEval(a, b, c) {
if(is_array(a)) {
eval(b);
} else {
eval(c);
}
}
NULL
不存在顺便说一下,它是NULL
不要重复is\u数组
检查:
var djs=function(ob) {
if (!is_array(ob)) ob = [ob];
@SHiNKiROU当然是对的,但只是提供一个如何使用高阶函数解决问题的示例:
function doToAll(ob, callback) {
if(is_array(ob)) {
for (var i = 0; i < ob.length; i++) {
callback(ob[i]);
}
} else {
callback(ob);
}
}
...
remove:function(){ //removes element
doToAll(ob, function(actualOb) { actualOb.parentNode.removeChild(actualOb); });
},
...
函数doToAll(ob,回调){
if(is_数组(ob)){
对于(变量i=0;i
但是,对于这个特殊情况,再次使用@shinkiro:s的答案。似乎您有一个PHP Accenton,我认为您可以使用,但Javascript也有一个函数。
function doToAll(ob, callback) {
if(is_array(ob)) {
for (var i = 0; i < ob.length; i++) {
callback(ob[i]);
}
} else {
callback(ob);
}
}
...
remove:function(){ //removes element
doToAll(ob, function(actualOb) { actualOb.parentNode.removeChild(actualOb); });
},
...