关于如何测试prepend()成功的任何想法? Prepend()当然不适用于图像标记,所以我需要在before()之前执行。
我正在尝试使用.query类将前映像添加到所有跨度,但无法使其在包含自闭项标记(如图像)的跨度上工作。
试过这个:
$('.query').each(function(i) {
var elm=$(this);
if (elm.prepend('<img class="fold" src="/img/fold.png" />').find('img.fold').length==0) {
elm.before('<img class="fold" src="/img/fold.png" />');
}
});
在:
<span class="query">
<img alt="blah" src="img/banner.jpg" height="422" width="952" />
</span>
<span class="query">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ornare, tellus in posuere viverra, dui dolor lacinia elit, vitae vestibulum nuluris condimentum. Donec vel mauris t sed sit amet. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos</p>
</span>
没有答案,所以我现在有一个解决方法:
if (elm[0].tagName.toLowerCase()=="img") {
elm.before('<img class="fold" src="/img/fold.png" />');
}
else {
elm.prepend('<img class="fold" src="/img/fold.png" />')
}
答案 0 :(得分:1)
prepend
不会失败
如果你查看Firebug,你会看到你附加的元素确实存在。
您可以检查新插入的元素.is(':visible')
。 (除非父母本身被隐藏)
答案 1 :(得分:0)
由于我无法检测前置是否失败,我检测到前置是否会失败。
if (elm.is(':empty')) {
elm.before('<img class="fold" src="/img/fold.png" />');
}
else {
elm.prepend('<img class="fold" src="/img/fold.png" />');
}