2012-11-27 47 views
0

我在div標記內動態添加input標記,當我單擊按鈕時,可能會發生同一標記在該div中被複制。我想要做的是用新的替換現有的。我的代碼如下:替換標記(如果存在)

<div id="data" name="data"></div> 
<input type=button value="+ Ajouter Element" onclick="ajouter();"> 

<script> 
function ajouter() { 
    for(k=0;k<i;k++) { 
     h=$("#hauteur"+(k+1)).val(); 
     l=$("#largeur"+(k+1)).val(); 
     p=$("#position"+(k+1)).val(); 
     ch+='<div style="width: '+l+'%; height: '+h+'%; border-style:solid; float:'+p+' "></div>'; 
     $("#data").append('<input type="hidden" name="div'+(k+1)+'" id="div'+(k+1)+'" value="'+(k+1)+';'+h+';'+l+';'+p+'">');} 
} 
</script> 

回答

1

嗯,我找到了我自己:

if($("#div"+(k+1)).length == 0) { 
    $("#data").append('<input type="hidden" name="div'+(k+1)+'" id="div'+(k+1)+'" value="'+(k+1)+';'+h+';'+l+';'+p+'">'); 
} else { 
    $("#data").find("#div"+(k+1)).replaceWith('<input type="hidden" name="div'+(k+1)+'" id="div'+(k+1)+'" value="'+(k+1)+';'+h+';'+l+';'+p+'">'); 
} 

希望這有助於在需要的人吧:)

+5

我想這意味着您發佈的問題太早或者你在發佈這個問題時有答案;-) –

+1

@Maroua Gasmi:對於第二種情況,我會建議2個改進:因爲''div' +(k + 1)'是一個唯一的ID並且你知道它存在(測試是存在的),你應該直接找到它,第二件事是隻修改必須修改的東西。它會導致這樣的代碼:'$(「#div」+(k + 1))。value((k + 1)+';'+ h +';'+ l +';'+ p);' –

+0

@ jan dvorak:由於某種原因,論壇推遲接受我的問題20分鐘,我花時間找出解決方案;) –