J’ai un script qui copie le texte du texte ALT d’une image et crée une zone de légende, puis saisit le texte.
var alt = $("#hoejre p span img").attr("alt"); $('#hoejre p span img').after(''); $('#hoejre p span span').html('' + alt.replace('-', ' ') + '');
Cela fonctionne très bien, quand il y a une image. Mais lorsqu’il n’y a pas d’images, le script échoue dans IE7.
Comment puis-je envelopper le VAR avec une phrase IF.
pourquoi appeler une méthode alors que vous pouvez simplement regarder la propriété length?
if ($imgs.length) { ... /* one or more images exist */ }
La méthode size ():
if ($("#hoejre p span img").size() > 0) { var alt = $("#hoejre p span img").attr("alt"); $('#hoejre p span img').after(''); $('#hoejre p span span').html('' + alt.replace('-', ' ') + ''); }
Les sélecteurs jQuery retournent un tableau.
Vous pouvez vérifier s’il contient des éléments avec la propriété native JS Array.length. Basez votre if
sur si la longueur est> 0.
Vous pouvez vérifier le nombre d’objects .size()
par un sélecteur jQuery avec .size()
Vérifiez la réponse de fcalderan , qui suggère d’utiliser plutôt la propriété .length
.
Le résultat est le même, mais potentiellement plus rapide.
Par exemple, vous pouvez faire ce qui suit:
var $imgs = $("#hoejre p span img"); if( $imgs.size() > 0 ) { var alt = $imgs.attr("alt"); $('').html('' + alt.replace('-', ' ') + '') .insertAfter( $imgs ); }