Javascript JS:使用insertAdjacentHTML移动锚只会附加href,而不是元素

Javascript JS:使用insertAdjacentHTML移动锚只会附加href,而不是元素,javascript,Javascript,我正在尝试将锚定标记从一个元素移动到另一个元素。当我这样做时,唯一附加的是锚href,而不是元素本身。这是为什么?我如何修复它 我只需要一个Javascript解决方案,因为没有使用jQuery 谢谢你的帮助 Fidde: 我所尝试的: <p class="hello">hello</p> <p class="hello">hello<a href="#link">LINK</a></p> var hello = docu

我正在尝试将锚定标记从一个元素移动到另一个元素。当我这样做时,唯一附加的是锚href,而不是元素本身。这是为什么?我如何修复它

我只需要一个Javascript解决方案,因为没有使用jQuery

谢谢你的帮助

Fidde:

我所尝试的:

<p class="hello">hello</p>
<p class="hello">hello<a href="#link">LINK</a></p>

var hello = document.querySelectorAll('.hello');
hello[0].insertAdjacentHTML('beforeEnd', hello[1].querySelectorAll('a')[0]);

你好

你好

var hello=document.querySelectorAll('.hello'); hello[0]。insertAdjacentHTML('beforeEnd',hello[1]。querySelectorAll('a')[0]);

我也尝试过使用不同的方法来选择我的元素,比如
getElementsByTagName
,或者用
innerHTML
以不同的方式附加它——我尝试过的所有方法都给出了相同的结果。

你使用
InsertajacentHTML(一个字符串),而不是实际的元素。如果向其传递一个元素,该元素将转换为字符串(如
string(theElement)
)。对于
htmlanchoreElement
,这意味着您只需获得
href
。证明:

console.log(
字符串(document.querySelector(“a”))
);

您将
insertAdjacentHTML
HTML(字符串)一起使用,而不是与实际元素一起使用。如果向其传递一个元素,该元素将转换为字符串(如
string(theElement)
)。对于
htmlanchoreElement
,这意味着您只需获得
href
。证明:

console.log(
字符串(document.querySelector(“a”))
);

除了@t-j-crowder所说的,您还可以使用
outerHTML
完成任务:

var hello = document.querySelectorAll('.hello');

hello[0].insertAdjacentHTML('beforeEnd', hello[1].querySelectorAll('a')[0].outerHTML);

除了@t-j-crowder所说的,您还可以使用
outerHTML
来完成任务:

var hello = document.querySelectorAll('.hello');

hello[0].insertAdjacentHTML('beforeEnd', hello[1].querySelectorAll('a')[0].outerHTML);

我只是使用[0]来尽可能真实地保存我的原始代码,我在元素之间循环,所以0实际上是我的。但是现在这就更有意义了,谢谢你的帮助!!我只是使用[0]来尽可能真实地保存我的原始代码,我在元素之间循环,所以0实际上是我的。但是现在这就更有意义了,谢谢你的帮助!!