Подтвердить что ты не робот

JQuery содержит() с переменным синтаксисом

У меня есть "неперехваченное исключение: ошибка синтаксиса, нераспознанное выражение:)" в приложении 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 в содержит: $( "p: содержит (" + vtxt + ")" ). addClass ("on");

Я пробовал несколько кавычек, но он просто не работает. Какой правильный синтаксис для добавления переменной в содержит?

4b9b3361

Ответ 1

Попробуйте следующее:

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

Ответ 2

Старый вопрос, но я должен оставить записку для будущих поколений. Эндрю ответ (принятый) не работал у меня. В работе did использовалась готовая строка в качестве селектора. Заимствование примеров OP:

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

Ответ 3

Я использовал этот ответ, чтобы решить подобную проблему.
Я хочу предотвратить использование " и '

При использовании $("p:contains('" + valor + "')").addClass("on"); он работает.

Но при использовании $('p:contains('" + valor + "')**'**).addClass("on") он не!