7

为什么在 :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');
4

5 回答 5

13

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

$('div:contains("' + $modele + '")')
于 2013-03-20T19:21:38.187 回答
5

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

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

于 2013-03-20T19:19:17.460 回答
5

它只是一个连接问题:

$('div:contains(' + $modele + ')').css('background','yellow');
于 2013-03-20T19:26:32.120 回答
1

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

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

这是一个小提琴。

http://jsfiddle.net/CMKsF/

于 2013-03-20T19:23:07.140 回答
1

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

试试这个

var $modele = $('h2').text();
//variable doesn't work
$('div:contains("'+$modele+'")').css('background','yellow');
于 2013-03-20T19:23:30.960 回答