2010-11-11 41 views
1

我与任何一个图像或依赖于像这样的XML设置属性的Flash影片的HTML填入一组<article>jQuery的 - 检查XML属性存在

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

有一个“N “数量”文章“取决于XML文件。每篇文章都有图片或Flash影片。

后我加载使用.ajax()的XML,我使用.append()添加<img><object>文章。问题是,现在我在每篇文章中都有空标签(img或object)。所有分配有图像的文章都有一个空白的<object>标签,反之亦然。

如何在追加前检查XML?所以当一篇文章被分配一个图像时,<object>标签不会出现?

jQuery的是如下图所示

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

我想在这里接受的答案是一个更好的解决方案:jQuery的hasAttr检查,看看是否有一个元素的属性[复制](http://stackoverflow.com/questions/1318076/jquery- hasattr-checking-to-see-if-there-is-an-an-on-an-an-element) – Fabii 2015-10-08 16:19:33

回答

1

这为我工作

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

这不会正确检查属性的存在。 – 2013-02-27 03:06:39

0

如果顺序并不对你很重要,你应该先筛选闪光属性, 和比对图像属性。 否则类似:

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

你应该先检查是否该属性将其分配给一个变量之前存在。

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

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

} else { 

    // this attribute does NOT exist 
}