1

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] です。私が本当に必要としているのはsignalRconveyanceId-XXYY、各リスト要素の id-part を取得することです。どうすればそれができるでしょうか?

4

3 に答える 3

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);
});

更新されたフィドル

于 2013-10-04T08:31:46.230 に答える
0

あなたのコードliでは、実際には要素ではありません - それはインデックスです。...liを使用して各要素を参照できます。this

var listItems = $("#unitlist li");
listItems.each(function() {
    console.log(this.id);
});
于 2013-10-04T08:33:46.547 に答える
0

私はこれを得た:

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

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

于 2013-10-04T08:34:13.867 に答える