如何为具有相同ID的多个自动生成按钮提供相同的链接?
我试过了,但它只给了第一个按钮链接,其余的按钮保持空白
$('#Button').click(function() {
window.location='aaa.html';
});
答案 0 :(得分:5)
在HTML中,只有一个具有给定ID的元素,要将相同的jQuery代码分配给多个元素,而应使用“class”属性。
请参阅: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>
答案 1 :(得分:4)
我试过了,但它只给了第一个按钮链接,其余的按钮保持空白
标识符在整个页面中应该是唯一的,才能成为有效的HTML。
当通过Id查询时,jQuery将只返回匹配的第一个。
尝试使用类,因为类可以应用于元素组。
然后更新您的选择器以使用类指示符.
,类似于:
$('.YourClassName').click(function() {
window.location='aaa.html';
});
有关jQuery id选择器的更多详细信息,请查看ID Selector (“#id”)文档。
如上所述:
每个id值只能在文档中使用一次。如果超过 一个元素已分配相同的ID,使用该ID的查询 只会选择DOM中第一个匹配的元素。这种行为 但是,不应该依赖;包含多个文档的文档 使用相同ID的元素无效。
答案 2 :(得分:1)
您不应该为同一个id
提供多个元素,但如果必须,您可以使用:
$('[id="Button"]').click(function() {
window.location='aaa.html';
});
我建议将id
全部以“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
参考文献:
答案 3 :(得分:0)
具有多个相同的ID是违反HTML规范的。您可以使用css类或其他选择器。