当前位置 : 主页 > 网页制作 > JQuery >

jQuery .click():从具有相同类的DIV获取属性

来源:互联网 收集:自由互联 发布时间:2021-06-15
我有点击事件的问题;这是代码: jQuery的: $(document).ready(function() { $('.myClass').click(function() { alert($(.myClass).attr("iditem")); });}); HTML: div class="myClass" iditem="1" 1 /divdiv class="myClass" iditem="2" 2
我有点击事件的问题;这是代码:

jQuery的:

$(document).ready(function() {
    $('.myClass').click(function() {
        alert($(.myClass).attr("iditem"));
    });
});

HTML:

<div class="myClass" iditem="1">
    1 
</div>
<div class="myClass" iditem="2">
    2
</div>

两个DIV具有相同的类,但同一属性的值不同,当我点击DIV时,警告打印始终为“1”(它似乎忽略了第二个DIV的声明).为什么.attr()没有为第二个DIV采用正确的值?

假设你有$(‘.myClass’).attr(“iditem”),这将始终返回集合中第一个元素的属性,如 documentation [docs] þ中所述:

Get the value of an attribute for the first element in the set of matched elements.

因此,不是选择具有类myClass的所有元素(即$(‘.myClass’)所做的,无论在何处/何时调用它),您都希望获得对被点击元素的引用.简单地说:

$(this).attr('iditem');

这总是指事件处理程序绑定的元素.

我建议使用HTML5 data-* attributes而不是自定义属性,以获得至少有效的HTML5:

<div class="myClass" data-item="1">

然后,您可以使用.data() [docs]来检索该值.

þ:你真的应该阅读jQuery的文档.它提供了许多示例和每种方法如何工作的详细说明.确保您也了解selectors [docs]的工作原理.

网友评论