jQuery执行字符串作为函数

时间:2013-04-15 22:56:09

标签: jquery string function

我想从服务器端JS向客户端js传递jQuery命令(以字符串的形式)。这允许我从服务器端修改客户端DOM。

功能:

$("textArea").attr("disabled","true");

我想做什么:

$['$("textArea").attr("disabled","true")']();

引发错误。想法?

2 个答案:

答案 0 :(得分:11)

您可以在客户端使用eval-function:

这会立即执行你的javascript:

eval('$("textArea").attr("disabled","true")');

但是,正如评论中所说的那样,要小心你所做的事情,因为这是一种非常粗暴的方法。

另外,在安全性方面,你并没有真正获得任何东西,因为仍然可以打开开发工具并删除已禁用的属性

答案 1 :(得分:2)

或者,您可以将字符串分解为从服务器传递的多个字符串。例如:

// variables passed from the server
selector = 'textArea';
method = 'attr';
arguments = ['disabled', 'true'];

然后你可以这样评价:

$(selector)[method](arguments[0], arguments[1]);

当然,如果参数的数量需要是动态的,那就会变得有点棘手。

相关问题