为eval函数转义javascript撇号/引号,因此它仍然可以作为选择器使用

Escaping javascript apostrophe / quotation for eval function, so it still works as a selector?

本文关键字:选择器 转义 函数 eval javascript 撇号 引号      更新时间:2023-09-26

以下jsfiddle中的js代码:

JS:

function myFunc(foo){
    $(foo).val("magic, it works!... NOT");    
}
var x = "myFunc('input[name='''testme''']')";

eval (x);

HTML:

<input name="testme" type="text" />

有人知道我能做什么吗?

您需要这样做:

function myFunc(foo){
    $(foo).val("magic, it works!... NOT");    
}
var x = "(myFunc('input[name='"testme'"]'))";
eval(x);

将它们组合到()中。但你也需要考虑这一点。您需要屈服无包裹(身体)

Fiddle:http://jsfiddle.net/praveenscience/243ur/2/

不要使用eval

在您的示例中,您正在向eval传递一个常量字符串。这可以简单地替换为字符串的内容。这就是eval实际所做的一切,除了使用eval使JavaScript引擎无法优化代码之外。

您的示例可以替换为:

function myFunc(foo){
    $(foo).val("magic, it works!... NOT");
}
myFunc('input[name=''testme'']');