jquery Map()不能用于html列表

时间:2013-09-26 10:03:47

标签: javascript jquery

我试图获取一个html列表中的元素数组:

<ul id="sortable1" class="connectedSortable ui-sortable">
    <li data-gid="36" class="ui-state-default giftsout" style="height: 90px; overflow-x: hidden;">
        <span style="color: #666; font-size: 14px; font-family: 'Roboto Slab', serif;">ITEM1</span>
    </li>
    <li data-gid="37" class="ui-state-default giftsout" style="height: 90px; overflow-x: hidden;">
        <span style="color: #666; font-size: 14px; font-family: 'Roboto Slab', serif;">ITEM2</span>
    </li>
</ul>

和JS:

console.log($('#sortable1').map(function() { var $item = $(this); return $item.data('gid'); }).get());

JSFiffle:http://jsfiddle.net/U4JBg/1/

但到目前为止,我得到一个空数组,为什么?

1 个答案:

答案 0 :(得分:3)

您需要循环li元素,因为gid数据属于不在li元素中的ul元素

console.log($('#sortable1 li').map(function() { var $item = $(this); return $item.data('gid'); }).get());

演示:Fiddle