22 votes

Jquery select all elements with an innerHTML that starts with a string ?

Je sais que l'on peut utiliser :contains pour obtenir les éléments dont l'innerHTML contient une certaine chaîne, mais comment puis-je obtenir les éléments dont l'innerHTML commence par une chaîne ?

22voto

joshperry Points 17727

En utilisant une fonction de filtrage, vous pouvez filtrer sur la base de n'importe quel critère :

var spans = $("span").filter(function(idx) {
   return this.innerHTML.indexOf(myString) == 0;
});

21voto

yincrash Points 2344

Je sais que c'est vieux, mais si quelqu'un cherche une meilleure réponse, jQuery depuis la version 1.1.4 a une fonction ":contains("text")" selector .

Exemple HTML :

<p>Please reply above this line...</p>

Exemple : jQuery sélectionne le code HTML ci-dessus :

$('p:contains("Please reply above this line")');

2voto

akellehe Points 3183

Vous pourriez faire quelque chose comme ça :

<!doctype HTML>
<html>
<head>
<script type = "text/javascript" language = "JavaScript" src = "jquery-1.4.2.min.js"></script>
<script type = "text/javascript" language = "JavaScript">
var elems;
$(document).ready(function(){
    $("div").each(function(){
        var content = $(this).html();
        if (content.match(/asdf/)){
            alert(content);
        }
    });
});
</script>
</head>
<body>
<div>asdfaowhguiwehgiuh</div>
<div>asdfaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>asdfaowhguiwehgiuh</div>
</body>
</html>

Pour savoir si le problème se situe au niveau du contenu, si vous voulez les premiers caractères, vous devez diviser le contenu sur ces caractères et ne tester que ceux-ci.

1voto

Justin Russell Points 550

La méthode de filtrage vous permet de comparer le contenu d'un élément, puis vous pouvez faire ce que vous voulez (dans ce cas, j'ai fait addClass('selected') ).

$('p').filter(function() {
  var searchString = 'Blue';
  return ($(this).html().substring(0, searchString.length) == searchString);
}).addClass('selected');

Démonstration :

http://jsbin.com/ironi/2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X