簡體   English   中英

當我嘗試對它們進行排序時,如何在javascript中獲取當前ul li的長度?

[英]How to get the current ul li's length in javascript , when i tried to sort them?

<ul id="types" style="list-type:none;">

<li id="categories" style="list-type:none;">1
<ul>
    <li style="list-type:none;">1</li><br/>
    <li style="list-type:none;">1</li>
</ul>
</li>

<li id="categories" style="list-type:none;">2
<ul>
    <li style="list-type:none;">2</li><br/>
    <li style="list-type:none;">2</li>
</ul>
</li>

<li id="categories" style="list-type:none;">3
<ul>
    <li style="list-type:none;">3</li><br/>
    <li style="list-type:none;">3</li>
</ul>
</li>

</ul>

我在上下移動li時,像這樣,我已經編寫了調用一個jquery _mouseStop函數的代碼(event,noPropagation)

我在寫這個函數

var tagetNode = this.currentItem[0].parentNode.id

if (this.element[0].id == "categories") {
    var targetlistlength = document.getElementById(targetListId).getElementsByTagName("li").length;
    // var targetlistlength = this.parentNode.getElementsByTagName("li").length;
    var PageIds = "";
    for (var i = 0; i < targetlistlength; i++) {
        PageIds += document.getElementById(targetListId).getElementsByTagName("li")[i].getAttribute("value") + ",";
    }

}

當我對子li進行排序時,上面的函數被調用,但是它總是只獲取第一個li長度的第一個子ul。我想要我要排序的當前ul li的長度

我也嘗試過用注釋行來獲取li的長度,但是由於this.parentNode是未定義的,我會出錯

任何人都可以建議我該怎么辦

由於沒有可用的演示程序,因此您可以檢查使用console.log($(this)); 在控制台中發生mouseStop事件時,該函數內部。 如果您在控制台中得到了預期的li ,則可以執行以下代碼來獲取其父級的子級的長度。

alert($(this).parent().children().length);

不得有多個具有相同ID的元素。 嘗試將它們替換為類或使其唯一。

如果您具有唯一的ID,則if條件可以為以下條件(例如,category-1,category-2,...)

if (this.element[0].id.match("^categories") != null) { ... }

或者,如果您使用類,則if條件可以是:

if (this.element[0].className.match("(^| )categories( |$)") != null) { ... }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM