7
votes

jQuery: contient le sélecteur à l'aide de la variable

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');


2 commentaires

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


5 Réponses :


5
votes

Contrairement à PHP, JavaScript ne prend pas en charge l'interpolation de chaîne.

Si vous souhaitez utiliser une variable à l'intérieur d'une chaîne, vous devez concaténate à l'aide de l'opérateur + .


0 commentaires

13
votes

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 + '")')


0 commentaires

1
votes

Comme indiqué dans @slaks répond que vous devez concaténer.

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


0 commentaires

1
votes

Vous devez le transmettre en tant que chaîne .. donc concaténer le var avec " à l'aide d'opérateur + .. de sorte qu'il le faut comme chaîne

Essayez ceci < / p> xxx


0 commentaires

5
votes

Ce n'est qu'une question de concaténation: xxx


0 commentaires