jQuery包含带有可变语法的()

我在jQuery应用程序中有一个“未捕获的exception:语法错误,无法识别的表达式:)”。

代码是:

 $(document).ready(function(){ $('.drag').click(function() { $('.drag').each(function(i) { $(this).addClass('test' + i) }); var vtxt = $(this).text(); $("p").removeClass("on"); $("p:contains("+ vtxt +")").addClass("on"); }); }); 

问题是当我将变量vtxt添加到contains: $(“p:contains(”+ vtxt +“)”)。addClass(“on”);

我试过几个引号,但它不起作用。 将变量添加到包含的正确语法是什么?

试试这个:

 $("p:contains('" + vtxt + "')").addClass("on"); 

老问题,但我必须留给后代留言。 安德鲁的答案(被接受的答案)对我不起作用。 使用预制字符串作为选择器的工作是什么。 借用OP的例子:

 var selector = "p:contains("+ vtxt +")"; $(selector).addClass("on"); 

我用这个答案来解决类似的问题。
我想阻止使用"'

当使用$("p:contains('" + valor + "')").addClass("on"); ,它的工作原理

但是当使用$('p:contains('" + valor + "')**'**).addClass("on") ,它不会