使用jQuery在按钮上复制元素

时间:2010-04-06 01:05:01

标签: jquery

我是jQuery的新手,每次用户按下按钮时,我都会尝试显示另一个相同的下拉菜单。我认为这样可行,其中#append是按钮ID,#foo是下拉ID:

<script type="text/javascript">
    $(document).ready(function(){
        $("#append").click(function(){
            $("#foo").append($("#foo"));
        });
    });
</script>

但是,它不会复制原始下拉列表,而是会导致它消失!我做错了什么?

2 个答案:

答案 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)。菜单有着名的跨浏览器问题。重新发明那个特定的轮子是没有价值的。