2011-05-01 41 views
0

我讀了一些這方面的問題和答案,但他們都不讓手頭上的問題的肉(或馬鈴薯)。jQuery的.clone()與id和name屬性

如果你有一個ID和/或名稱,與IDS和/或名兒童的單元點.clone(),你得到了什麼?沒有ID或名稱的物品?該項目通過複製IDS違反DOM的規則是什麼?

回答

1

調用.clone()本身並不違反任何DOM的規則(.clone()只是一個函數調用,結果存在於內存中)。

插入.clone()呼叫到DOM的結果,但是,將導致兩個元素具有相同id文檔(正如你指出是哪些無效)的存在。

0

克隆的元素不會插入到DOM,只是還沒有。它們只存在於內存,因此不違反任何規範。這是我的理解。

0

多個元素可以有相同的name,所以這不是一個問題。

一個元素上調用clone本身不是確實違反唯一ID的DOM規則。這是因爲該元素的副本不是當前在文檔。如果當你插入的規則只破。

1

其他的答案歸納起來好聽,但這裏是一個新的克隆刪除id屬性的方法...

clone.find('[id]').removeAttr('id'); 

另外,如果你想將字符串添加到他們的id屬性。 ..

clone.find('[id]').attr('id', function(index, oldId) { return oldId + 'cloned'; });