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。每个元素?
谢谢
答案 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"));
});
我没有测试它,如果有一些错误就很抱歉。
希望这有帮助。