J'essaie d'utiliser l'attribut de texte comme un sélecteur, mais je ne peux pas tout à fait saisir le comportement, apprécierait vraiment si quelqu'un pouvait expliquer. Par exemple donné <span class="span_class"><a class="a_class">text</a></span>
, $('a.a_class').text()
donne "texte" comme prévu. Cependant $('a.a_class[text]')
ne correspondrait à aucun élément, et $('span.span_class > a.a_class[text]')
non plus, mais $('span.span_class* > a.a_class[text]')
le ferait (mais pas dans IE). La seule solution envisageable pour IE consiste à parcourir toutes les ancres contenues dans un span, utilisez .text() sur chacun d'entre eux et faites-le correspondre à certains critères, mais il semble plus lent que d'utiliser des sélecteurs intégrés. Quelqu'un a de meilleures idées?jQuery Sélecteur d'attribut de texte
Répondre
ce que sur l'utilisation d'un sélecteur personnalisé
$(document).ready(function(){
$.extend($.expr[':'], {
notext: function(elem, i, attr){
return($(elem).text() === "");
}
});
});
Synopsis
$('span:notext').remove();
vous pouvez même créer un sélecteur qui gère les expressions régulières comme
$.extend($.expr[':'], {
'content': function(elem, i, attr){
return(RegExp(attr[3]).test($(elem).text()));
}
});
Synopsis
$('span:content(^api_)').remove();
choisirait et supprimer toutes les travées dont le texte commence par api_
Ceci est dû au fait que 'texte' dans ce cas n'est pas un attribut. C'est le contenu de l'élément.
Vous cherchez le sélecteur :contains()
:
$('a.a_class:contains(text)');
http://api.jquery.com/contains-selector/
Gardez à l'esprit que ce sélecteur correspondra à une partie de la chaîne. contains(foo)
correspondra également à "foo bar".
Si vous voulez une correspondance exacte de la chaîne entière de texte, vous pouvez utiliser filter()
$('a.a_class').filter(function() {
return $(this).text() == "text";
});
EDIT:
Pour trouver des éléments dont le contenu commence par une valeur, vous pourriez utiliser une expression régulière à l'intérieur du filter()
:
$('a.a_class').filter(function() {
return $(this).text().indexOf("tex") >= 0;
});
EDIT: Mis à jour pour utiliser indexOf()
au lieu de regex comme recommandé par @Nick.
Hmm ok. Ce que je cherchais, c'était "Commence par" alors, et '$ ('span.span_class *> a.a_class [texte^=" tex "]')' fonctionnait bien, jusqu'à ce que je l'ai testé avec IE. – Shagglez
@Shagglez - Je ne savais pas que ça marcherait du tout. Je suppose que j'utiliserais l'option 'filter()' avec regex pour savoir si le texte commence par "tex". – user113716
@Shagglez - Vous pouvez utiliser ce que @patrick a, il suffit de remplacer 'return $ (this) .text() ==" text ";' par 'return $ (this) .text(). IndexOf (" text ") = == 0; 'pour un" début-avec "vérifier. –
- 1. jquery, sélecteur, trouver, texte
- 2. sélecteur de texte brut dans jQuery
- 3. jquery, sélecteur
- 4. jquery, sélecteur, contient un du texte
- 5. jquery sélecteur de datetime
- 6. Sélecteur de date Javascript/Jquery
- 7. Sélecteur vide jQuery (sélecteur null)
- 8. Composant de sélecteur de texte
- 9. jQuery Sélecteur et événements
- 10. Comment obtenir l'expression d'un sélecteur jQuery sous forme de texte?
- 11. JQuery contient un sélecteur - plusieurs éléments de texte
- 12. Y a-t-il un sélecteur de texte dans jquery?
- 13. Jquery sélecteur récursif
- 14. sélecteur jquery
- 15. sélecteur JQuery
- 16. JQuery sélecteur
- 17. jQuery Sélecteur de date
- 18. Problème de sélecteur jQuery
- 19. Problème de sélecteur Jquery
- 20. Problème de sélecteur Jquery
- 21. jquery tableau de sélecteur
- 22. problème de sélecteur jQuery
- 23. Problème de sélecteur jQuery?
- 24. Problème de sélecteur jQuery
- 25. Sélecteur Jquery
- 26. jQuery sélecteur
- 27. android: sélecteur de texte personnalisé
- 28. jQuery sélecteur enquête
- 29. jquery, images, sélecteur
- 30. Sélecteur basé sur le texte entre les balises, dans Jquery
Pas besoin d'un wrapper 'document.ready' :) –
Je laisserai le même commentaire ici: A moins que vous * ayez besoin * d'une expression régulière, utilisez' .indexOf() ', c'est * beaucoup * plus rapide, et Lorsque vous parlez de sélecteurs, en particulier sur un nombre potentiellement important d'éléments, la vitesse est importante. –
Parfait, exactement ce que je cherchais :). Merci. – Shagglez