jQuery迭代表元素

时间:2011-07-13 07:29:32

标签: javascript jquery html iteration

我正在尝试使用jQuery从html网页内的img元素中检索数据。

我从一开始就知道只有1张图片,但是当我运行以下代码时,我会得到2个警告框。 它们包含相同的信息..

有谁知道我做错了什么?

$("#tableX td").find("img").each(function() {
    if ($(this).data("apple") == "orange") {
        alert($(this).attr("src"));                
    }
});

感谢。

更新:

DOM输出..

<td id="tdP4" align="center" style="border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(201, 201, 201); border-right-color: rgb(201, 201, 201); border-bottom-color: rgb(201, 201, 201); border-left-color: rgb(201, 201, 201); "><img id="imgP4" src="/images/t/00.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; width: 63px; height: 103px; display: block; background-color: rgb(71, 7, 79); " alt="00"></td>

3 个答案:

答案 0 :(得分:1)

也许可以尝试更具体的选择器

$("#tableX td > img").each(function() {
    if ($(this).data("apple") == "orange") {
        alert($(this).attr("src"));                
    }
});

编辑:您的<img>标记处于打开状态

答案 1 :(得分:1)

有两个可能的原因:

  • 您有多行包含图片(选择器会在整个表格中选择所有图片)
  • 或代码运行两次。

答案 2 :(得分:0)

你说

  

只有一个表,每个td一个,1个图像!

这允许多个tr元素,每个元素都包含tdimg

$("#tableX td").find("img").each会在img内找到所有 #tableX元素。它们是否在不同的行(tr)中无关紧要。