jQuery执行字符串作为函数

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

function:

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

我想做的事:

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

引发错误。 思考?

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

这将立即执行您的JavaScript:

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

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

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

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

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

然后你可以用这种方式评估它:

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

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