如何打开此元素并将其附加到另一个元素?

时间:2014-03-22 02:00:21

标签: jquery

我正在尝试解包.tweet-details并将其附加到.tweet-text。以下是我到目前为止所得到的但由于某些原因.tweet-details没有解开。

<p class="tweet-text">This is a tweet.</p>
<p class="tweet-details"><a href="/">- Mar 21</a></p>

jQuery('.tweet-details').unwrap().appendTo('.tweet-text');

我错过了什么?

3 个答案:

答案 0 :(得分:3)

unwrap方法删除调用它的元素的父元素。正如documentation所说:

  

&#34;从DOM中删除匹配元素集的父元素,将匹配的元素留在原位。&#34;

您可能只需要这样做:

$ ('.tweet-details').find('a').unwrap().appendTo('.tweet-text');

答案 1 :(得分:1)

jQuery unwrap()从DOM中删除元素的父级。阅读本文

  

.unwrap()方法删除元素的父级。这实际上是.wrap()方法的反转。匹配的元素(以及它们的兄弟,如果有的话)在DOM结构中替换它们的父节点。

因此,如果tweet-text是它的兄弟,那么它在DOM中就不再存在了所以你必须在解包操作之前先存储它的引用。做这样的事

var $a = $('.tweet-text');
$('.tweet-details').unwrap().appendTo($a);

JSbin Demo

请参阅此屏幕截图,其中显示了其正常工作

enter image description here

答案 2 :(得分:0)

如果您只查找内容而没有HTML标记,则可以使用text()

var details = $('.tweet-details').text();
$('.tweet-text').append(details);
$('.tweet-details').hide();

http://jsfiddle.net/RxgsX/1/