2011-12-08 51 views
0

<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級的物品,當我試圖做一個ie和firefox中列表選擇的不同行爲?

jQuery('a').parent().parent().html();它在IE行爲不同。在IE瀏覽器中,它將ul作爲它的孩子,但在Mozilla中沒有。什麼可以是它的原因和解決方案。

回答

0

我在IE火狐&測試,並在這兩個它採取same` + 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個&其他瀏覽器的差異。一切都需要你的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不承認貴麗的結束標記,並採取的innerHTML你李大一點。 添加li到第二部分解決問題:)

+0

這實際上是錯誤的父母()。父母()和我使用ie7 –

+0

http://jsfiddle.net/sUxyt/1/請參閱和更新描述問題 –

+0

你想更新什麼?我讓這個jsfiddle播下代碼在IE7和Firefox中都有相同的行爲。 您可以在兩個瀏覽器中運行此代碼,並看看結果。 –

相關問題