2010-11-11 5 views
1

Je peuplant un ensemble de <article> en HTML soit avec une image ou une animation flash en fonction des attributs définis dans un fichier XML comme si,jQuery - vérifier si l'attribut XML existe

<article image="" flash="flash/1.swf"></article>// this article has flash only 
<article image="image/1.jpg" flash=""></article>// this article has image only 

Il a « n "nombre d'articles" en fonction du fichier XML. Chaque article a une image ou un film flash.

Après que je charge le XML à l'aide .ajax(), j'utilise .append() ajouter <img> et <object> à l'article. Le problème est, maintenant j'ai des étiquettes vides (img ou objet) dans chaque article. Tous les articles auxquels des images ont été attribuées portent une étiquette vide <object> et vice versa.

Comment puis-je vérifier le code XML avant de l'ajouter? Ainsi, lorsqu'un article a été affecté à une image, la balise <object> n'apparaît pas?

Le jQuery est comme indiqué ci-dessous

$('#container').append('<article><img src="'+$image+'"/><object><param name="movie" value="'+$flash+'"></object></article>'); 
+0

Je pense que la réponse est acceptée ici une meilleure solution: [vérifier jQuery hasattr pour voir s'il y a un attribut sur un élément [dupliquer]] (http://stackoverflow.com/questions/1318076/jquery- hasattr-checking-to-see-if-there-est-un-attribut-sur-un-élément) – Fabii

Répondre

1

Cela a fonctionné pour moi

var $flash = $(this).attr('flash'); 
if ($flash == null) { 
... 
} 
else { 
... 
} 
+0

cela ne vérifie pas l'existence de l'attribut correctement. –

0

Si l'ordre est important de ne pas vous vous devez d'abord filtrer les attributs flash, et que pour les attributs d'image. Sinon quelque chose comme:

.append('<article>' + ($image != null) ? <img.. : <object..) + "</article>"; 
0

Vous devez d'abord vérifier si l'attribut existe avant de l'assigner à une variable.

if($(this).attr('flash');){ 

    // this attribute exists 
    // you can also check if its null or not 

} else { 

    // this attribute does NOT exist 
}