jQuery each()帮助

时间:2009-10-20 13:37:52

标签: jquery

我有这个结构

<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(),但它没有用。

6 个答案:

答案 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');
  }
);

Manual

答案 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>");
});