如何为具有相同 ID 的多个自动生成的按钮提供相同的链接?
我试过了,但它只给第一个按钮链接,其余按钮保持空
$('#Button').click(function() {
window.location='aaa.html';
});
如何为具有相同 ID 的多个自动生成的按钮提供相同的链接?
我试过了,但它只给第一个按钮链接,其余按钮保持空
$('#Button').click(function() {
window.location='aaa.html';
});
在 HTML 中只能有一个具有给定 ID 的元素,要将相同的 jQuery 代码分配给多个元素,您应该改用“类”属性。
见:http ://www.w3.org/TR/html401/struct/global.html#h-7.5.2
JS:
$('.button').click(function() {
window.location='aaa.html';
});
HTML:
<div class="button">DIV 1</div>
<div class="button">DIV 2</div>
<div class="button">DIV 3</div>
我试过了,但它只给第一个按钮链接,其余按钮保持空
标识符在整个页面中应该是唯一的,才能成为有效的 HTML。
当通过 Id 查询时,jQuery 只会返回第一个匹配的。
尝试使用类代替,因为类可以应用于元素组。
然后更新选择器以使用类指示符.
,类似于:
$('.YourClassName').click(function() {
window.location='aaa.html';
});
有关 jQuery id 选择器的更多详细信息,请查看ID 选择器(“#id”)文档。
正如那里所说:
每个 id 值只能在文档中使用一次。如果为多个元素分配了相同的 ID,则使用该 ID 的查询将仅选择 DOM 中第一个匹配的元素。但是,不应依赖此行为;具有多个使用相同 ID 的元素的文档无效。
你不应该给多个元素相同id
,但如果你必须,你可以使用:
$('[id="Button"]').click(function() {
window.location='aaa.html';
});
我建议让id
s 都以“Button”开头,并在生成它们时在末尾添加一个整数,这样你就有了结构:
<div id="Button1"></div>
<div id="Button2"></div>
<div id="Button3"></div>
所以你可以使用:
$('[id^="Button"]').click(function() {
window.location='aaa.html';
});
另一种选择是设置一个特定的class
,并具有以下结构:
<div class="button-class"</div>
<div class="button-class"></div>
<div class="button-class"></div>
并使用类似的东西:
$('.button-class').click(function() {
window.location='aaa.html';
});
您可能想要研究的是事件委托:http ://api.jquery.com/on/#direct-and-delegated-events
参考:
拥有多个相同的 ID 是违反 HTML 规范的。您可以使用 css 类或其他选择器。