【问题标题】:jquery :contains selector using variablejquery:包含使用变量的选择器
【发布时间】:2013-03-10 02:10:12
【问题描述】:

为什么在 :contains() 中使用变量不起作用?有什么办法让它工作吗? filter('contains()') 也没有用。

<h2>Test</h2>
<div>Test</div>

var model = $('h2').text();
//variable doesn't work
$('div:contains(model)').css('background','yellow');
//obviously, string works
$('div:contains("Test")').css('background','yellow');

【问题讨论】:

  • 重复:在此处查看答案:stackoverflow.com/questions/2191419/…
  • 与文本节点无关,JS不解析字符串内的变量(看来你可能习惯了PHP?)你必须使用$('div:contains('+$modele+')').css('background','yellow');

标签: jquery contains


【解决方案1】:

与 PHP 不同,Javascript 不支持字符串插值。

如果要在字符串中使用变量,则必须使用+ 运算符连接它。

【讨论】:

    【解决方案2】:

    选择器不使用 Javascript 变量。您必须将变量中的值放在选择器字符串中:

    $('div:contains("' + $modele + '")')
    

    【讨论】:

      【解决方案3】:

      如@Slaks 回答中所述,您需要连接。

      $('div:contains('+$modele+')').css('background','yellow'); works
      

      这是一个小提琴。

      http://jsfiddle.net/CMKsF/

      【讨论】:

        【解决方案4】:

        您需要将其作为字符串传递.. 所以使用+ 运算符将var 与" 连接起来.. 以便将其作为字符串

        试试这个

        var $modele = $('h2').text();
        //variable doesn't work
        $('div:contains("'+$modele+'")').css('background','yellow');
        

        【讨论】:

          【解决方案5】:

          这只是一个连接问题:

          $('div:contains(' + $modele + ')').css('background','yellow');
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-04-17
            • 2012-03-06
            • 1970-01-01
            • 2012-04-06
            • 2013-12-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多