我试图在div中的每个图像之后附加放大玻璃的图片。其中一些是链接的,在这种情况下,我希望它在</a>
标记之后的img
之后附加。
我该怎么做:
<img src="a.jpg" .... />
变成:
<img src="a.jpg"><img src="mag.gif" />
和
<a href="...."><img src="a.jpg" .... /></a>
变成:
<a href="...."><img src="a.jpg"></a><img src="mag.gif" />
请注意,img
标记之前和之后可能存在换行符。
这是怎么做到的?
答案 0 :(得分:3)
您可以使用after
方法。
在匹配元素集合中的每个元素之后插入由参数指定的内容。
$('img').after('<img src="mag.gif"/>')
答案 1 :(得分:2)
试试这个:
$('img[src="a.jpg"]').after('<img src="mag.gif" />');
这将使用src="a.jpg"
在每张图片后添加放大玻璃图像。
了解jQuery .after()
方法。
您也可以使用 .insertAfter()
,如下所示:
$('<img src="mag.gif" />').insertAfter('img[src="a.jpg"]');
答案 2 :(得分:1)
这是你的代码:
$('img').parent().not('a').children('img:first').after('<img src="mag.gif" />');
$('img').parents('a:first').after('<img src="mag.gif" />');
工作演示位于http://jsfiddle.net/sURqy/。
答案 3 :(得分:1)
$.each($('img[src="a.jpg"]'), function(i) {
var $element = $(this);
if($element.parent('a').length) {
$element = $element.parent();
}
$element.after('<img src="mag.gif"/>');
});
答案 4 :(得分:1)
var $a_with_img = $('a').has('img');
var $img_no_a = $('img').not('a img');
var $elements = $.merge($img_no_a, $a_with_img);
$elements.after('<img src="mag.gif" />');