<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
<ul>
<li><span><a href=''>+</a>Sub Item 1</span></li>
</ul>
</ul>
当我尝试做一个等级1和等级2的项目时,我有一个这样的无序列表
jQuery('a').parent().parent().html();
它在ie中表现不同。在IE中,它将低于它的ul作为它的孩子,但在mozilla它不是。可能是什么原因和解决方案。
答案 0 :(得分:0)
我在IE&amp; Firefox,两者都采用相同的`+第1项
你也错过了第一个父母的括号,我已经像这样测试了
$("#reorderps").append(jQuery('a').parent().parent().html());
结果我在两个浏览器中都有这个
+Item 1
+Sub Item 1
+Item 1
这是jsfiddle http://jsfiddle.net/sUxyt/1/
为什么选择第1项?因为jQuery('a')向你返回数组,而jQuery('a')意味着jQuery('a').eq(0)
如果你想采取下一行,你必须写一些这种
$("#reorderps").append(jQuery('a').eq(1).parent().parent().html());
在这种情况下,你必须在我的jsfiddle
的例子中得到这个+Item 1
+Sub Item 1
+Sub Item 1
修改强>
我根据需要更改了Javascript部分,就像这样
jQuery('ul#reorderps a').click(function(e){ alert(jQuery(this).parent().parent().html()); e.preventDefault(); });
是的,IE 7和IE中存在差异。其它浏览器。所有都需要从这个
更改您的HTML<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
<ul>
<li><span><a href=''>+</a>Sub Item 1</span></li>
</ul>
</ul>
到
<ul id='reorderps'>
<li><span><a href=''>+</a>Item 1</span></li>
<li>
<ul>
<li><span><a href=''>+</a>Sub Item 1</span></li>
</ul>
</li>
</ul>
这种行为的原因是IE 7无法识别你的li的结束标记,并且使你的li的innerHTML变得更大。 将li添加到第二部分可以解决问题:)