在JQuery中选择自定义数据属性

use*_*206 9 javascript jquery html5 custom-data-attribute

我这里有一个清单

<ul id="demo2" data-name="demo2">
    <li data-value="here">here</li>
    <li data-value="are">are</li>
    <li data-value="some...">some</li>
    <!-- notice that this tag is setting a different value :) -->
    <li data-value="initial">initial</li>
    <li data-value="tags">tags</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

每个li项目都有自定义数据属性.在JQuery上,如何获得具有data-value属性的每个li元素的所有值?我想得到他们的价值.

但是我的这个代码似乎没有起作用

        $('#view-tags').click(function(){
            $('li[data-value]').each(function(){
                alert($(this).data("value"));
            })
    });
Run Code Online (Sandbox Code Playgroud)

关于jsfiddle的整个代码:http://jsfiddle.net/Zn3JA/

Chr*_*son 12

你很近.您可以使用jQuery的.data()方法来读取以...开头的属性data-.因此,在您的情况下,.data("value")因为您的属性是data-value="some".

这应该这样做:

$('li[data-value]').each(function(){
     alert($(this).data("value"));
});
Run Code Online (Sandbox Code Playgroud)

这也是一个工作小提琴: http ://jsfiddle.net/nuphP/


Rob*_*ler 5

$(this).attr('data-value') 
Run Code Online (Sandbox Code Playgroud)

也应该工作。

  • 请注意,这略有不同:它将在元素中创建一个真实的属性。如果你使用`.data()`,该值将存储在DOM节点中,但不会像HTML属性那样表现;这可能是也可能不是您想要的;但重要的是要注意(例如,CSS 可以通过`.attr()` 设置的真实属性进行选择)。 (2认同)