[英]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.