javascript - 如何使用 jquery 在现有 li 列表之间添加带有文本的 li 元素?

标签 javascript jquery html

我有 8 个 li 元素,每个元素的值都在 1 到 8 之间。

<ul>
  <li>1</li>
  <li class="even">2</li>
  <li>3</li>
  <li class="even">4</li>
  <li>5</li>
  <li class="even">6</li>
  <li>7</li>
  <li class="even">8</li>
</ul>

我想在每个具有偶数值的 li 上方插入带有文本“我在 x 之上”的 li。所需的 li 应该看起来像

<ul>
  <li>1</li>
  <li>This is above 2</li>
  <li class="even">2</li>
  <li>3</li>
  <li>This is above 4</li>
  <li class="even">4</li>
  <li>5</li>
  <li>This is above 6</li>
  <li class="even">6</li>
  <li>7</li>
  <li>This is above 8</li>
  <li class="even">8</li>
</ul>

这不能硬编码,因为我已经简化了问题。实际上我想在特定的 li 元素之上动态添加 html。

我尝试使用 .insertBefore() 但这不起作用。

("<li>x</li>").insertBefore$('#listing li.even');

最佳答案

您可以像这样使用 :nth-child() 选择器。

$('li:nth-child(even)').each(function() {
    var num = $(this).text();
  $(this).before('<li> This is before '+ num +'</li>');
})

$('li:nth-child(even)').each(function() {
  var num = $(this).text();
  $(this).before('<li> This is before ' + num + '</li>');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>1</li>
  <li class="even">2</li>
  <li>3</li>
  <li class="even">4</li>
  <li>5</li>
  <li class="even">6</li>
  <li>7</li>
  <li class="even">8</li>
</ul>

关于javascript - 如何使用 jquery 在现有 li 列表之间添加带有文本的 li 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39901455/

相关文章:

javascript - html-webpack-plugin 和 webpack 2 : no starting slash '/'

javascript - redux-状态发生变化但组件不显示重新渲染的 View

javascript - 如何从 HTML 中的嵌入式 Javascript 中抓取值?

javascript - 元素放在 javascript 之前但 getElementById 返回 null javascript

javascript - 在另一个页面上显示搜索数据 <div>

java - 使用 CSS/Java 显示图像而不是按钮框架

javascript - Angular 中的资源类型是什么?

javascript - 如何将所有相关的 javascript 获取到 html 元素

javascript - JS - 从同一类中的其他方法调用类中的方法

Javascript HTML 选择下拉菜单