如何使用jQuery评估变量

时间:2011-04-04 03:26:21

标签: jquery variables eval

我希望在页面上添加或添加一些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 + ')');

3 个答案:

答案 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);');