如何使用每个函数来使用jquery获取每个元素的attr

时间:2009-11-06 07:34:44

标签: jquery html

html是

<table>
<tr>
<td><img src="ex.jpg" id="image" class="edit" name="n1"></td>
<td><img src="ex.jpg" id="image" class="edit" name="n2"></td>
<td><img src="ex.jpg" id="image" class="edit" name="n3"></td>
<td><img src="ex.jpg" id="image" class="edit" name="n4"></td>
</tr>
</table>

Jquery代码是:

$(".edit").click(function() {

$("#image").each(function(){

alert(this.name);

});

});

这里,它只提醒一个名字,我的意思是警报“n1”。

我如何提醒姓名attr。每个元素?

谢谢

4 个答案:

答案 0 :(得分:3)

您不能拥有多个具有相同ID的元素(因此名称:ID)。如果您这样做,#image 始终仅匹配具有给定ID的第一个元素(在您的情况下为#n1图像)。但是,您可以向元素添加多个类:

HTML:

<img class="edit image" name="foobar" />

JS:

$(".image").each(function(){
    alert($(this).attr('name'));
});
在此上下文中,

this是纯DOM元素。首先必须将其更改为jQuery对象(var $that = $(this)),然后才能使用.attr()

答案 1 :(得分:0)

var title = $("img").attr("name");
alert (title);

答案 2 :(得分:0)

您的HTML实际上无效;不允许两个元素具有相同的id

答案 3 :(得分:0)

我认为你的问题是元素的id应该是唯一的,所以jQuery可能不会尝试获取所有这些(所以你只有一个元素)。

我的建议是改变每个人的身份。

如果你因为有理由不能这样做,试试这个:

$("img[id='image']").each(function(){

alert(this.name);
// Or alert($(this).attr("name"));

});

我没有测试它,如果有一些错误就很抱歉。

希望这有帮助。