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

时间:2010-02-03 11:12:59

标签: javascript jquery syntax

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

代码是:

<script>
    $(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”);

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

3 个答案:

答案 0 :(得分:49)

试试这个:

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

答案 1 :(得分:7)

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

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

答案 2 :(得分:3)

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

使用$("p:contains('" + valor + "')").addClass("on");时,有效

但使用$('p:contains('" + valor + "')**'**).addClass("on")时,