2017-05-18 76 views
0

我克隆了一個html元素。JQuery克隆插入後

var $clone = $('.rules-if-field-container-'+if_counter).clone(true); 

但是現在我想在div被克隆時附加一個div。

我嘗試這樣做:

$clone.append('<div class="append_or_'+inc_counter+'"> </div>').insertAfter('rules-if-field-container-'+inc_counter); 

但不給我正確的結果。

它給了我這樣的結果:

<div class="box box-warning box-solid rules-if-field-container-1"><div class="append_or_1"> </div></div> 

但必須是這樣的:

<div class="box box-warning box-solid rules-if-field-container-1"></div> 
<div class="append_or_1"> </div> 

我怎麼能執行一個insertAfter當我克隆一個元素?

在先進的感謝

回答

0

在這種情況下append()不適合你的需求,因爲它創建你所指定的目標的子元素的內容。

相反,您可以先將該克隆添加到DOM,然後使用after()添加第二個div。試試這個:

$clone 
    .insertAfter('.rules-if-field-container-' + inc_counter) 
    .after('<div class="append_or_' + inc_counter + '"> </div>'); 

另外請注意,我會強烈建議你不要使用增量類名稱。他們很快就成爲一種維護的痛苦,並且完全違背了類別的要求,即允許對相關元素進行分組。

+0

嗯,這似乎不工作:( – erwinnandpersad

0

jQuery docs

的.append()方法將指定的內容作爲jQuery的集合中的每個元素的最後一個子 (要插入它作爲第一個孩子 ,使用.prepend())。

我想你需要after來代替。

將由參數指定的內容插入匹配元素集中的每個元素之後。