我正在尝试做什么:
jQuery检查所有:<div class="message-body">
然而,另一个名为<div class="message-body">
的div也会被选中。
代码按预期工作 - 但 包括 其他具有相似名称的div。
如何阻止jQuery选择其他元素?
示例可以在这里看到:http://jsfiddle.net/Z5HJE/
顶部图片不应作为链接。
底部图像应该是唯一可以作为链接使用的图像。
我根本没有jQuery经验,但我的网站需要这个简单的功能。
感谢您的阅读。
答案 0 :(得分: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") + "'/>");
});
答案 1 :(得分: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") + "'/>");
});
});
});
答案 2 :(得分:0)
我假设你需要在<div class="message-body">
内获取img标签,这样你就可以修改你的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") + "'/>");
});
});