我是jQuery的新手,每次用户按下按钮时,我都会尝试显示另一个相同的下拉菜单。我认为这样可行,其中#append是按钮ID,#foo是下拉ID:
<script type="text/javascript">
$(document).ready(function(){
$("#append").click(function(){
$("#foo").append($("#foo"));
});
});
</script>
但是,它不会复制原始下拉列表,而是会导致它消失!我做错了什么?
答案 0 :(得分:4)
你想要这样的东西:
$(document).ready(function(){
$("#append").click(function(){
$("#foo").parent().append($("#foo").clone().removeAttr("id"));
});
});
.append()
添加到调用元素的末尾,因此在这种情况下,您希望追加到父级,而不是在中<select>
元素(如你会添加选项)。此外,除非您要移动原始实例,否则您希望.clone()
它。另外,请确保您的ID是唯一的,我会删除id="foo"
并为其提供课程,或删除副本上的ID等...除了重复的ID之外的任何内容。
答案 1 :(得分:1)
如果要复制元素,请使用clone()
:
$("#foo").clone().attr("id", "foo2").insertAfter("#foo");
话虽如此,不尝试创建自己的菜单。使用现有的插件(有很多例如superfish)。菜单有着名的跨浏览器问题。重新发明那个特定的轮子是没有价值的。