0

我正在尝试做的事情:

jQuery 检查所有:<div class="message-body">

但是,另一个名为: 的 div<div class="message-body">也被选中。

该代码按预期工作 - 但包括具有相似名称的其他 div。

如何防止 jQuery 选择这些其他元素?

示例可以在这里看到:http: //jsfiddle.net/Z5HJE/

顶部图像不应用作链接。

底部图像应该是唯一可以用作链接的图像。

我根本没有 jQuery 经验,但我的网站需要这个简单的功能。

感谢您的阅读。

4

3 回答 3

1

jQuery 完全按照您的指示去做。

当迭代所有.message-body元素时,它应该对所有元素进行迭代。

在注意到您可能拼错了您的问题后,您的问题是您遍历所有 div,然后再次遍历所有img标签,无论它们的位置如何。你应该试试这个:$('.message-body img')在你的第一个each循环中,你不需要两者。

代码 :

   $('.message-body img').each(function ()
   {
      var currImg = $(this);
      currImg.wrap("<a target='_blank' href='" + currImg.attr("src") + "'/>");
   });
于 2012-11-27T06:50:34.307 回答
0

这将工作:)

 $(function ()
    {
       $('.message-body').each(function ()
        {
           $(this).find('img').each(function ()
            {
                var currImg = $(this);  // cache the selector
                currImg.wrap("<a target='_blank' href='" + currImg.attr("src") + "'/>");
            });
        });
    });​

http://jsfiddle.net/Z5HJE/2/

于 2012-11-27T06:54:14.727 回答
0

我假设你需要在里面获取 img 标签<div class="message-body">,所以你可以修改你的 javascript 代码成为:

$('.message-body').each(function ()
{
   $(this).find('img').each(function ()
   {
      var currImg = $(this);  // cache the selector
      currImg.wrap("<a target='_blank' href='" + currImg.attr("src") + "'/>");
   });
});
于 2012-11-27T06:54:40.277 回答