JQuery附加到多个元素失败

qua*_*cle 18 html xhtml jquery

我正在尝试使用jQuery的append()方法将公共内容附加到div的集合,如下所示:

$("#horizontal_menu").append(menu);
$("#vertical_menu").append(menu);
Run Code Online (Sandbox Code Playgroud)

我发现内容(在这种情况下,菜单)被附加到vertical_menu而不是horizo​​ntal_menu.是否附加到一个<div>会阻止您将该内容附加到另一个<div>?

Nic*_*ver 27

你可以.appendTo()像这样翻转它:

menu.appendTo("#horizontal_menu, #vertical_menu");
Run Code Online (Sandbox Code Playgroud)

如果menu不是jQuery对象只是包装它:

$(menu).appendTo("#horizontal_menu, #vertical_menu");
Run Code Online (Sandbox Code Playgroud)

目前正在发生的事情是它会附加,或更准确地移动#horizontal_menu,然后立即再次移动.传递选择器或多个元素.appendTo()使其克隆并在内部附加到每个元素.

  • 这不起作用....它只附加到第一个 - :#horizo​​ntal菜单.在最近的jQuery版本中有没有改变? (2认同)

Roa*_*rth 10

附加一个是否会阻止您将该内容附加到另一个内容?

关于[jQuery wrapped] DOM元素,是的.在jQuery调用下appendChild,当使用相同元素多次调用时,只需将其从当前位置移动到新位置.

您可以尝试克隆来制作副本:

var $menu = $(menu);
$("#horizontal_menu").append($menu.clone());
$("#vertical_menu").append($menu.clone());
Run Code Online (Sandbox Code Playgroud)

如果您希望复制事件处理程序true,clone()则可以传递给.