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

それは単なる連結の問題です:

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

PHP とは異なり、Javascript は文字列補間をサポートしていません。

文字列内で変数を使用する場合は、演算子を使用して連結する必要があります。+

于 2013-03-20T19:19:17.460 に答える
1

文字列として渡す必要があります..演算子を"使用して変数を連結します..文字列として受け取るようにします+

これを試して

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

@Slaksの回答に記載されているように、連結する必要があります。

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

ここにフィドルがあります。

http://jsfiddle.net/CMKsF/

于 2013-03-20T19:23:07.140 に答える