多年来从这个网站上阅读各种帖子,从这个网站上获得了很多帮助,但我有点卡在这个上,似乎无法找到答案:
我正在显示/替换下拉列表,该列表取决于所选的“表格”类型(通过单选按钮)
一切都很好......直到我尝试显示之前显示的列表...即。当我点击两次单选按钮时,我无法重新显示列表。我也尝试将所有DIV HTML加载到一个数组中并调用它,因此它必须(?)与append有关?
这是我正在使用的HTML。 (HTML中的'max @ times'是我用动态生成的内容替换列表的地方 - 并且一次创建所有各种下拉列表,并且不会从服务器连续获取它们)
<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看起来像这样并且功能正常(我正在使用警报来检查它是否正在触发并且传递了正确的值!)
$("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
答案 0 :(得分:2)
您可以使用clone来获取选择区域内的整个表格。您可以使用“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());
});
答案 1 :(得分: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"));
});