我希望在页面上添加或添加一些html。
而不是我的功能:
var action = 'prepend'; // may be prepend or append
var htmlStr = '<strong>text example</strong>';
var obj = $('#wrapExample');
if(action == 'prepend'){
$(obj).prepend(htmlStr);
}else{
$(obj).append(htmlStr);
}
我可以以某种方式评估'action'变量,例如。
eval('$(obj).' + action + '(' + htmlStr + ')');
答案 0 :(得分:4)
您是否正在寻找
$(obj)[action](htmlStr)
在javascript中说someobject["something"]
和someobject.something
是等效的。
答案 1 :(得分:2)
您可以使用以下eval
代替:
$(obj)[action](htmlStr);
以下是等效的:
a.foo
a["foo"]
因此,当你有类似的东西时:
var property = "foo";
你可以这样做:
a[property]
以编程方式访问属性/方法。
此外,由于您的obj
变量已经是jQuery结果,因此您可以跳过其他$
:
obj[action](htmlStr);
答案 2 :(得分:0)
我认为应该如此
eval('$(obj).' + action + '(htmlStr);');