我有这个结构
<p class="descr">
<span>something here</span>
<img src="test" />
</p>
<p class="descr">
<span>somthing else here</span>
<img src="test2" />
<img src="test3" />
</p>
因此<p>
元素中可能有多个图像。
我需要做的是遍历每个<p>
,然后遍历其中的每个<img>
,并在其前面添加一些内容。任何帮助表示赞赏。我试过做.each()
,但它没有用。
答案 0 :(得分:3)
试试这个:
$('p.descr > img').each(function() {
// Make this code do what you want.
$(this).prepend('<span>Prepended Content</span>');
});
变量this
表示此函数内的当前图像。在这个例子中,我在一个段落中的每个图像之前注入一个span
元素,但只是直接后代图像。
如果您只想在每张图片之前添加另一个元素,则可以缩短此功能:
$('p.descr > img').prepend('<span>Prepended Content</span>');
答案 1 :(得分:2)
$('p').each(function()
{
$(this).find('img').each(function()
{
// do stuff with the image
});
});
答案 2 :(得分:1)
$('p.desc img').before('<span>here comes an image</span>');
答案 3 :(得分:0)
$('p img').each(
function(k, v)
{
$($(v).parents()[0] + 'span').html('Your text here');
}
);
答案 4 :(得分:0)
这样的事情可以解决问题:
$('p.descr img').before('<span>New Stuff</span>');
答案 5 :(得分:0)
p = $('#p img');
p.each( function(i, val) {
$(val.id).append("<strong>Hello</strong>");
});