2012-03-28 186 views
0
<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> 

我而动的李上下,当我做这样的我写的代码调用一个jQuery的_mouseStop功能(事件,noPropagation))如何在JavaScript中获取当前ul li的长度,当我尝试对它们进行排序?

这个功能我写

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") + ","; 
    } 

} 

当我整理的孩子李的上述功能被调用,但它始终只获得第一个里长的第一个孩子UL ..我想我正努力理清

当前UL里的长度i已经与该公司一起尝试过mmented线也得到李的长度,但IAM越来越错误的this.parentNode是不确定的

请人建议我我能做些什么

+5

你的JavaScript代码中没有jQuery的;是故意的,还是jQuery可以提供给你? – Blazemonger 2012-03-28 14:23:39

+0

如果您使用jQuery,为什么不使用$而不是document.getElementById()? – 2012-03-28 14:24:13

+0

我猜OP有意加入'jquery'标签以满足最低要求为“提问” – 2012-03-28 14:40:32

回答

0

由于没有可用的工作演示,你可以检查你当当在控制台中发生mouseStop事件时,您在该功能中使用console.log($(this));。如果您在控制台中获得预期的li,那么您可以执行以下代码来获取其父项子项的长度。

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

您好codef0rmer,因为有重复的ID的IAM得到问题,所以我删除了如果条件,那么它正在工作,并且它也正在得到李的长度正确哪个IAM试图移动。 – suresh 2012-03-29 07:10:37

+0

太棒了,对你有好处!顺便说一句,你有没有尝试过我的代码,如果它也能工作,那么你可以使用简单的代码,因为它很可读。 – codef0rmer 2012-03-29 07:27:56

+0

嗨,我试着用你的代码,但我不工作。 console.log($(this))得到了“_firebug”,类似于$ this(this).parent()。children()。长度变为0, – suresh 2012-03-29 11:24:26

0

不能有多个具有相同ID的元素。 尝试用类替换它们或使其具有唯一性。

的,如果条件可能是以下,如果你有独特的ID(如类别1,类别2,...)

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

或者,如果您使用的类,如果条件可以是:

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

嗨亚什德感谢给的答案,因为有重复的ID的IAM获得问题的,所以我删除的,如果条件那么它的工作,它也越来越李时珍长度适当哪个iam试图移动。 – suresh 2012-03-29 07:07:58

+0

啊,我看到,如果条件不再是必要的,因为currentItem现在拥有正确的项目... – 2012-03-29 07:16:03

相关问题