2012-10-24 45 views
3

有無收集本網站有很大幫助閱讀歷年的各種職位,但我堅持這一個了一下,似乎無法找到答案:追加DIV到DIV多次 - 沒有出現,如果重複

我顯示/更換一個下拉列表,它依賴於「表」的類型來選擇(通過單選按鈕)

所有的偉大工程...直到我試圖顯示之前已經顯示的列表中.. .IE當我點擊一個單選按鈕兩次時,我無法重新顯示列表。我也曾嘗試加載所有DIV HTML到一個數組並調用所以它必須(?)的東西做的追加?

這是我使用的HTML。 (「最大@時代」在HTML是我與我的動態生成的內容替換列表 - 並創建所有不同的下拉在一個鏡頭列表,並且不連續地從服務器獲取它們)

<div id="selectarea"></div> 
<div id="tables"> 
<div id="tables2"><p><select id="select2" class="tables" name="tables2"><option value="">Please Select</option>" & max2times & "</select></p></div>" 
<div id="tables4"><p><select id="select4" class="tables" name="tables4"><option value="">Please Select</option>" & max4times & "</select></p></div>" 
<div id="tables6"><p><select id="select6" class="tables" name="tables6"><option value="">Please Select</option>" & max6times & "</select></p></div>" 
<div id="tables8"><p><select id="select8" class="tables" name="tables8"><option value="">Please Select</option>" & max8times & "</select></p></div>" 
<div id="continue"><p style="text-align:center;"><input type="button" id="now" value="Continue" name="now"></p></div> 
</div> 

我的JQuery看起來像這樣並執行功能OK(我用的警報只是爲了檢查一下它射擊,並傳遞正確的值!)

$("input:radio[name=tabletype]").live("click",function() { 
       var value = $(this).val(); 
       alert("Button Click " + value); 
       $("#selectarea").html(""); 
       var tblSel = $("#tables"+value); 
       $("#selectarea").append(tblSel); 
       }); 

任何幫助/意見將受到歡迎!

感謝,

GS

回答

1

你應該追加的div的克隆。否則將會附加相同的元素引用,以便創建新的div。

$("input:radio[name=tabletype]").live("click",function() { 
        var value = $(this).val(); 
        alert("Button Click " + value); 
         $("#selectarea").html(""); 
        var tblSel = $("#tables"+value); 
        $("#selectarea").append(tblSel.clone(true).removeAttr("id")); 
       }); 
+0

真棒! - 非常感謝你 - 非常好/像現在宣傳的那樣!永遠不會有人自己懷疑 - 也許以後也會幫助我的項目的其他部分! 再次感謝。 GS – stretcho

2

您可以使用克隆來獲取選定區域內的整個表格。您可以使用「html()」而不是清空該區域並追加內容。

$("input:radio[name=tabletype]").live("click",function() { 
    var value = $(this).val(); 
    var tblSel = $("#tables"+value); 
    $("#selectarea").html(tblSel.clone().removeAttr("id")); 
}); 

如果您只想將內容複製到區域內,請使用下面的「html()」本身。這將確保div的將是具有唯一的ID,即你不需要從複製的內容中刪除ID。

$("input:radio[name=tabletype]").live("click",function() { 
    var value = $(this).val(); 
    var tblSel = $("#tables"+value); 
    $("#selectarea").html(tblSel.html()); 
});