自昨天以來,我一直在玩這個問題。我似乎無法找到解決辦法。Internet Explorer:複製/克隆孩子到陣列
問題:
<ul>
<li>Cats</li>
<li>Dogs</li>
<li>Bats</li>
<li>Ogre</li>
</ul>
願望上述無序列表保存到數組當文件使用javascript/jQuery是準備就緒。
在Internet Explorer 8中
someArray = $("ul").children()
在$(文件)。就緒()這樣做,陣列將有li元素,但是沒有他們的innerHTML
它會像
<li></li>
<li></li>
...
所以我想我可以將孩子保存到函數myFunc()內的全局數組中。這將確保所有內容都已加載。
/* Global Variable */
var someArray = null;
/* function to be called*/
function myFunc() {
if (someArray == null) someArray = $("ul").children()
result = someArray with elements from index 0 and n-2
$("ul").html();
$.each(result, function() {
$("ul").append(this)
}
}
上述代碼在Chrome和Firefox上完美工作。每次調用myfunc時,新的無序列表將只包含貓和狗。
但是,在IE上,似乎用$(「ul」)。html()更改無序列表也會更改someArray。它適用於第一個呼叫,但在第二次調用,它將從目前的UI元素的列表
原創要素:貓,狗蝙蝠, 食人魔在IE 第一個呼叫:貓,狗, 在IE第二個電話:空數組
我曾嘗試克隆與$ .extend的陣列,它似乎並沒有幫助。有沒有一種方法可以保存原始UL中的子節點列表,而不是通過IE更改它們?
看來,IE使用指針引用,當我救子節點放入數組
那是什麼語言?因爲'result = someArray與索引0和n-2的元素'不是JavaScript。 – 2011-04-02 15:29:44
只是解釋..並不意味着它是一個合適的代碼。 它與從0到n-2迭代someArray相同,因爲n是數組的長度。 for(i = 0; i
Kyle
2011-04-02 15:35:28
但你說*「上面的代碼完全適用於Chrome和Firefox ......」*你可以看看爲什麼我認爲這是實際的代碼。 – 2011-04-02 15:38:23