使用jquery将div中的所有链接添加到另一个div中

时间:2016-04-02 17:41:43

标签: javascript jquery html add element

我正在尝试从div链接获取链接并将它们添加到div links2,保持div链接的链接方式和div links2中的链接在每个链接后带<br />

你在说什么!?! 好吧,让我们来看看:

HTML:

<div id="links">
  <a href="#">one</a>
  <a href="#">two</a>
  <a href="#">three</a>
</div>
<div id="results"></div>
<div id="links2"></div>

JS:

var elements = $('#links a');
$('#results')
.text('there are ' + elements.length + ' links');
$('#links2').append(elements)

好的,所以忽略结果div,这只是显示总共有多少链接。

现在我已经附加,这是完全删除div链接的链接。我怎么能这样做它只是添加链接到links2与每个链接之间的br。

所以最后的输出会打印出这样的东西:

<div id="links">
  <a href="#">one</a>
  <a href="#">two</a>
  <a href="#">three</a>
</div>
<div id="results">there are 3 links</div>
<div id="links2">
  <a href="#">one</a><br />
  <a href="#">two</a><br />
  <a href="#">three</a><br />
</div>

更新小提琴:(需要添加br仍然) http://jsfiddle.net/upLg4/44/

2 个答案:

答案 0 :(得分:2)

在追加到其他元素

之前,您必须.clone()
$('#links2').append(elements.clone())

DEMO

对象elements引用div#link内的一组锚标签,因此通常追加会在遇到引用其他元素/选择器的对象时将元素从一个位置移动到另一个位置。这就是为什么我们必须手动克隆它。

答案 1 :(得分:2)

使用after()方法在每个链接后添加<br>,如下所示。

var elements = $('#links a');
$('#results').text('there are ' + elements.length + ' links');
$('#links2').append(elements.clone());
$('#links2 a').after('<br />'); // use this line to add <br>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="links">
    <a href="#">one</a>
    <a href="#">two</a>
    <a href="#">three</a>
</div>
<div id="results"></div>
<div id="links2"></div>

相关问题