【发布时间】:2015-06-10 21:15:05
【问题描述】:
我有许多动态填充的产品,它们都具有相同的 id 和类名。我希望每个“立即购买”按钮都有自己的 div,通过单击按钮进行切换。
我确实有能力为 id 和类分配一个递增的数字索引,但是,如果有办法避免它,我不想手动列出每个唯一的 id 和类来定位每个点击功能。
最好的方法是什么?
这就是我现在所拥有的......
HTML:
<button class="btn button-success clickme">Buy Now</button>
<div class="book" style="display: none;">
<!-- content here -->
</div>
<button class="btn button-success clickme">Buy Now</button>
<div class="book" style="display: none;">
<!-- content here -->
</div>
jQuery:
$( ".clickme" ).click(function() {
$( ".book" ).slideToggle( "slow", function() {
// Animation complete.
});
});
【问题讨论】:
-
在 HTML 中,ID 被认为是唯一的,因此您不能拥有多个具有相同 ID 的元素。 jQuery 将简单地选择它找到的第一个。如果您将
id="clickme"更改为class="clickme",然后使用".clickme"选择器,您的代码会更正确。 -
对多个元素使用相同的 id 不是一个好的设计。并且还使用类属性
btn button-success来将公共事件绑定到所有按钮。 -
这样做只会打开所有带有
class="book"的div。我已经相应地编辑了上面的代码。 -
您可能还想在 jquery 中查看 $(this)。这将有助于同时打开所有 div。
标签: jquery jquery-selectors click element slidetoggle