我有 3 个具有相同 ID 的按钮...
您的 HTML 无效。页面中不能有多个具有相同id
属性值的元素。
引用规范:
7.5.2元素标识符:id 和 class 属性
id = name [CS]
此属性为元素分配名称。此名称在文档中必须是唯一的。
解决方案:从更改id
为class
:
<button type="button" class="btn btn-primary xyz" value="1">XYZ1</button>
<button type="button" class="btn btn-primary xyz" value="2">XYZ2</button>
<button type="button" class="btn btn-primary xyz" value="3">XYZ3</button>
和jQuery 代码:
$(".xyz").click(function(){
alert(this.value);
// No need for jQuery :$(this).val() to get the value of the input.
});
但它仅适用于第一个按钮
jQuery#id
选择器文档:
每个 id 值只能在文档中使用一次。如果为多个元素分配了相同的 ID,则使用该 ID 的查询将仅选择 DOM 中第一个匹配的元素。但是,不应依赖此行为;具有多个使用相同 ID 的元素的文档无效。
如果您查看 jQuery 源代码,您可以看到当您$
使用 id selecor-( $("#id")
) 调用时,jQuery 调用了本机 javascriptdocument.getElementById
函数:
// HANDLE: $("#id")
} else {
elem = document.getElementById( match[2] );
}
虽然,在他们的规范中document.getElementById
没有提到它必须返回第一个值,但这就是大多数(也许是全部?)浏览器实现它的方式。
演示