Pourquoi est-ce que l'utilisation de variables dans: contient () ne fonctionne pas? Y a-t-il un moyen de le faire fonctionner? filtre ('contient ()') code> n'a pas fonctionné non plus.
<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');
5 Réponses :
Contrairement à PHP, JavaScript ne prend pas en charge l'interpolation de chaîne. P>
Si vous souhaitez utiliser une variable à l'intérieur d'une chaîne, vous devez + code>. p>
Sélecteurs n'utilise pas de variables JavaScript. Vous devez mettre la valeur de la variable dans la chaîne de sélection:
$('div:contains("' + $modele + '")')
Comme indiqué dans @slaks répond que vous devez concaténer.
$('div:contains('+$modele+')').css('background','yellow'); works
Vous devez le transmettre en tant que chaîne .. donc concaténer le var avec Essayez ceci < / p> " code> à l'aide d'opérateur code> + code> .. de sorte qu'il le faut comme chaîne
Ce n'est qu'une question de concaténation:
Dupliqué: voir la réponse ici: Stackoverflow.com/ Questions / 2191419 / ...
N'a rien à voir avec les nœuds de texte, JS n'a pas analysé les variables à l'intérieur des chaînes (on dirait que vous pouvez être utilisé à PHP?) Vous devrez utiliser
$ ('div: contient (' + $ MODÈLE + ')' ) .CSS ("fond", "jaune"); code>