Bonjour,
comment vérifier s'il vous plait qu'une balise est vide en jquery
si <p id="confirm_popup"></p> => vide
ou <p id="confirm_popup">votre message a été envoyé</p> => pas vide.
je veux tester afin d'afficher une boite de dialogue.
merci
Bonjour,
comment vérifier s'il vous plait qu'une balise est vide en jquery
si <p id="confirm_popup"></p> => vide
ou <p id="confirm_popup">votre message a été envoyé</p> => pas vide.
je veux tester afin d'afficher une boite de dialogue.
merci
Bonjour,
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part $('p#confirm_popup').text().length = 0 //alors c'est vide
Bien cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part $('p#confirm_popup:empty').length != 0 //alors c'est vide
innerHTML text n'est pas crossbrowser
Merci à vous. j'ai utilisé ta première solution Mahefasoaµ.
a+
donc en gros si on te donne le choix entre une voiture avec un volant et une autre sans volant tu prends celle sans le volant ...
Au moins t'es sur de te payer un mur ...![]()
oui don cplutot .html() que .text() ... enfin tout dépend de ce que l'on entend par vide ...
Bonsoir
text() : http://api.jquery.com/text/
Les différences, retours à la ligne et espaces blancs sont généralement entre les mots.Unlike the .html() method, .text() can be used in both XML and HTML documents. The result of the .text() method is a string containing the combined text of all matched elements. (Due to variations in the HTML parsers in different browsers, the text returned may vary in newlines and other white space.)
Je crois donc queest une solution valable ou mieux pour éliminer d'éventuels espaces blancs avant ou après le texte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $('p#confirm_popup').text().length
Code : Sélectionner tout - Visualiser dans une fenêtre à part $.trim($('p#confirm_popup').text()).length
salut à tous,
permettez que je pinaille un peu: ^^
vu que c'est un id et à moins d'avoir une raison particulière :$('p#confirm_popup').text().length
me parait plus approprié.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $('#confirm_popup').text().length
pour ce qui est de la notion de vide effectivement tout dépend de ce qu'on entend par 'vide':
-avec .text().length: (soit: le contenu texte hors balises)
renvoie : 0, même si la balise n'existe pas.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <p id="confirm_popup"><span></span></p>
remarque: '<' => 1 caractère
-avec .html().length: (soit: le contenu texte brut avec balises)
renvoie : 13, mais si la balise n'existe pas : arrêt du code.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <p id="confirm_popup"><span></span></p>
-et si effectivement une chaine d'espaces à le sens de vide un trim() est approprié.
je propose autrement:
qui renvoie 0 uniquement s'il n'y a rien dans la balise, il faut toutefois aussi être sûr de l'existence de celle-ci.
Code js : Sélectionner tout - Visualiser dans une fenêtre à part $('#confirm_popup').contents().length
![]()
Bonsoir
Pour l'id, vous avez raison, le p est inutile.
Pour contents (http://api.jquery.com/contents/), je ne suis pas d'accord.
contents() est l'équivalent de children() (http://api.jquery.com/children/) les commentaires en plus.Get the children of each element in the set of matched elements, including text and comment nodes.
bonsoir danielhagnoul,
pourquoi pas... mais je ne comprends pas l'argumentation, cela m'intéresse d'avoir plus de précision.je ne suis pas d'accord
je vois surtout l'avantage qu'il permet de comptabiliser le contenu et à la différence de .children() aussi les chaines textes, ce qui me semble bien répondre à la question puisqu'il est nul uniquement s'il n'y a rien entre les balises.
je ne vois donc pas ce qui a de contrariant dans ce choix.![]()
Bonsoir
Il suffit de lire la documentation, ou de faire un petit test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <p id="confirm_popup_1"></p> <p id="confirm_popup_2"><!-- Un commentaire --></p> <p id="confirm_popup_3"> Bonjour ! <span style="color:red;">Hello everybody !</span> </p>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $(function(){ /* * i = 0 $(item).text().length = 0 * i = 0 $(item).contents().length = 0 * i = 1 $(item).text().length = 0 * i = 1 $(item).contents().length = 1 * i = 2 $(item).text().length = 36 * i = 2 $(item).contents().length = 3 */ $("[id^='confirm_popup_']").each(function(i, item){ console.log("i = " + i, "$(item).text().length = " + $(item).text().length); console.log("i = " + i, "$(item).contents().length = " + $(item).contents().length); }); });
bonsoir danielhagnoul,
merci pour l'exemple. je te rassure, je lis les docs et je poste rarement sans vérifier surtout quand je ne maitrise pas un sujet.Envoyé par danielhagnoul
ton exemple illustre bien mon propos: contents().length est égale à zéro uniquement lorsqu'il n'y a pas de contenu ce qui n'est pas le cas de text().length. cela me parait bien répondre à la question:
alors permet moi d'insister: quel pb vois tu à ce choix?Envoyé par mino26tz
en revanche je constate que ces méthodes échouent pitoyablement s'il y a des balises qui ne sont pas 'inline' comme <h1> <p> <div> <center>...
Le problème, l'un compte les pommes et l'autre compte les poires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <p id="confirm_popup_1"> </p> <p id="confirm_popup_2"><br/></p> <p id="confirm_popup_3"> <span></span> </p>Le sujet est clos en ce qui me concerne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 /* * i = 0 $.trim($(item).text()).length = 0 * i = 0 $(item).contents().length = 1 * i = 1 $.trim($(item).text()).length = 0 * i = 1 $(item).contents().length = 1 * i = 2 $.trim($(item).text()).length = 0 * i = 2 $(item).contents().length = 3 */ $("[id^='confirm_popup_']").each(function(i, item){ console.log("i = " + i, "$.trim($(item).text()).length = " + $.trim($(item).text()).length); console.log("i = " + i, "$(item).contents().length = " + $(item).contents().length); });
on est bien d'accord là dessus mais ca peut aussi être des oranges ou bananes, la question est de savoir s'il n'y a rien, pas s'il y a qqc. ;pEnvoyé par danielhagnoul
aussi pour moi. à chacun d'apprécier la pertinence du choix.Envoyé par danielhagnoul
pour clore je rappellerais que ces solutions ne sont pas valables s'il y a des balises qui ne sont pas 'inline'.
![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager