2011-05-01 129 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'; });