JQuery数据html属性没有返回值

时间:2013-06-19 18:56:49

标签: jquery html5

这是我的HTML:

<ul class="inboxList">
    <li data-selecttype='global|mailbox|inbox'>Inbox</li>
</ul>

这是我的jquery代码:

$(".inboxList").children().each(function(child){
    console.log($(child).data("selecttype"));
});

我也尝试取出孩子的$():

$(".inboxList").children().each(function(child){
    console.log(child.data("selecttype"));
});

但那没用。

我的返回值为null且未定义。我期待返回值为global|mailbox|inbox我做错了什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

你使用each回调中的错误参数。您应该使用第二个arg作为元素或者抛弃args并使用this。它应该是:

$(".inboxList").children().each(function(i, child){ // each has 2 args first one is index and second one is the element.
    console.log($(child).data("selecttype")); //Or this

    console.log($(this).data('selecttype'));
});

http://jsfiddle.net/JUyHg/

  

.each(function(index,Element))

答案 1 :(得分:0)

试试这个,

$(".inboxList").children().each(function(){
    console.log($(this).data("selecttype"));
});

根据jQuery网站上的定义,.each()接受2个参数,indexElement,其中,

  

index - 是jQuery对象中当前匹配元素的索引   由.each()

返回

  

元素 - 是当前元素,在您的情况下

<li data-selecttype=​"global|mailbox|inbox">​Inbox​</li>​

详细了解.each()

Fiddle