使用Javascript循环遍历无序列表

时间:2013-10-04 08:30:10

标签: javascript jquery

我正在努力遍历一个无序列表,这是由kendo-ui生成的。看看它的标记,它看起来像这样:

<ul data-role="listview" data-style="inset" data-type="group" id="unitlist">
    <li>
        <li>
            <ul>
                <li id="signalRconveyanceId-P32-HMU-01">
                    <a href="/UnitDetails/Index/1">P32-HMU-01
                        <span class="statusicon" style="background-color: #468847"></span>
                    </a>
                </li>
                <li id="signalRconveyanceId-P32-HMU-02">
                    <a href="/UnitDetails/Index/2">P32-HMU-02
                        <span class="statusicon" style="background-color: #b94a48"></span>
                    </a>
                </li>
                <li id="signalRconveyanceId-XOS-STAGING">
                    <a href="/UnitDetails/Index/3">XOS-STAGING
                        <span class="statusicon" style="background-color: #468847"></span>
                    </a>
                </li>
                <li id="signalRconveyanceId-NWI-100">
                    <a href="/UnitDetails/Index/4">NWI-100
                        <span class="statusicon" style="background-color: #"></span>
                    </a>
                </li>
            </ul>
        </li>
    </li>
</ul>

我的javascript看起来像这样:

var listItems = $("#unitlist li");
listItems.each(function(li) {
    console.log(li);
});

我可以将列表中的行排除在外,但我得到的只是它们的索引号,在这种情况下是[0,...,6]。 我真正需要的是为每个列表元素获取id-part signalRconveyanceId-XXYY。我怎么能这样做?

3 个答案:

答案 0 :(得分:8)

尝试使用jquery attr()之类的,

var listItems = $("#unitlist li");
listItems.each(function(li) {
    console.log($(this).attr('id'));
});

HTML ,您应选择列表项,如

 var listItems = $("#unitlist li ul li");

<强>更新

var listItems = $("#unitlist li ul li");
listItems.each(function(index,li) {
    console.log(li.id);
});

Updated fiddle

答案 1 :(得分:0)

在你的代码中li实际上不是元素 - 它是索引。您可以使用li ...

来引用每个this元素
var listItems = $("#unitlist li");
listItems.each(function() {
    console.log(this.id);
});

答案 2 :(得分:0)

我明白了:

 var listItems = $("#unitlist li");
   listItems.each(function(li) {
   $id = $(this).attr('id');
   console.log($id);
 });

http://jsfiddle.net/lharby/cTEHY/