jQuery contains() with a variable syntax

42,470

Solution 1

Try this:

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

Solution 2

Old question, but I must leave a note for future generations. Andrew's answer (the accepted one) didn't work for me. What did work was using a pre-made string as selector. Borrowing OP's examples:

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

Solution 3

I have used this answer in order to solve a similar problem.
I want to prevent the use of " and '

When using $("p:contains('" + valor + "')").addClass("on");, it works.

But when using $('p:contains('" + valor + "')**'**).addClass("on"), it does not!

Share:
42,470
Mircea
Author by

Mircea

I design with HTML, CSS, JavaScript, Standards and Performance in Mind, taking pride in my work. You can see my rants on new web technologies at https://twitter.com/mirceadesign

Updated on May 14, 2021

Comments

  • Mircea
    Mircea about 3 years

    I have an "uncaught exception: Syntax error, unrecognized expression: )" in a jQuery application.

    The code is:

    <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");
    
           });
        });
    

    The problem is when I add the variable vtxt to a contains: $("p:contains("+ vtxt +")").addClass("on");

    I've tried several quotes but it just does not work. What is the right syntax for adding a variable to a contains?