javascript - 使用 jquery 合并列表项的文本,同时保持相同的顺序

标签 javascript jquery html list

我有两个数组:

<ul id="titles">
  <li>title 1</li>
  <li>title 2</li>
</ul>

<ul id="descs">
  <li>desc 1</li>
  <li>desc 2</li>
</ul>

我正在寻找结果:

<ul id="titles">
  <li>title 1 <span>desc 1</span></li>
  <li>title 2 <span>desc 2</span></li>
</ul>

我使用的代码:

var li_D = $('#descs li').map(function() {
  return $(this).text();
}).get();
var li_T = $('#titles li').append(function(){
  return"<span>"+li_D+"</span>"
});

但它返回这个结果:

<ul id="titles">
  <li>title 1<span>desc 1,desc 2</span></li>
  <li>title 2<span>desc 1,desc 2</span></li>
</ul>

JSfiddle

如何合并每个 ul 中的列表项以获得每个标题及其描述?

最佳答案

使用.html( function )改变每一里的 html。在函数的回调中,使用 .eq()#descs 中获取相关元素的文本.

$('#titles li').html(function(i, html) {
  return html + " <span>"+ $("#descs li").eq(i).text() +"</span>";
});
#titles span {color: red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="titles">
  <li>title 1</li>
  <li>title 2</li>
</ul>
<ul id="descs">
  <li>desc 1</li>
  <li>desc 2</li>
</ul>

关于javascript - 使用 jquery 合并列表项的文本,同时保持相同的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43171507/

相关文章:

javascript - 使用 CSS/JavaScript 在事件页面上突出显示事件导航菜单项,无 ID

javascript - "innerHTML += ..."与 "appendChild(txtNode)"

javascript - jQuery:如何在没有 for 循环的情况下将事件处理程序应用于 $ ('#text' + 'any integer' )?

Css div 文本移动

javascript - 如何使用 jquery 添加或删除基于浏览器高度调整大小的类?

javascript - 将 "..."放在可滚动容器的末尾,但仅当滚动位于顶部时

javascript - IE8 上的 FormData ajax 上传 -> 替代方案及其工作原理

javascript - JQuery UI slider 拖动到 100 时显示错误值(显示 0)

javascript - Angular 用户界面日历事件消失

javascript - 从外部url获取信息并放到我自己的网站上