javascript - jquery 在未嵌套的文本周围添加标签

标签 javascript jquery html css jquery-selectors

这是一个很难找到标题的问题,但就是这样。

我得到了这个 HTML,我无法更改

<ul>
    <li>
        First part of the list
        <ul>
            <li>item 1</li>
            <li>item 2</li>
        </ul>
    </li>
    <li>
        Second part of the list
        <ul>
            <li>item 3</li>
        </ul>
    </li>
</ul>

我想将内容应用于“列表的第一部分”和“列表的第二部分”部分,但不是嵌套的 ul 部分,例如 CSS 变换 scaleY,以及一个自定义的 Jquery onClick 方法。

所以,我想要的解决方案是用 JQueryly 添加这些内容。

这可能吗?

非常感谢

最佳答案

要实现这一点,您可以使用 filter() li contents() 来检索其中的文本节点,然后将其包装在span 并应用所需的 CSS 规则。像这样:

$('#container > ul > li').each(function() {
  var foo = $(this).contents().filter(function() {
    return this.nodeType == 3 && this.textContent
  }).wrap('<span />');
});
#container > ul > li > span {
  color: red;
  display: inline-block;
  transform: scaleY(2);
  margin: 0 0 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
  <ul>
    <li>
      First part of the list
      <ul>
        <li>item 1</li>
        <li>item 2</li>
      </ul>
    </li>
    <li>
      Second part of the list
      <ul>
        <li>item 3</li>
      </ul>
    </li>
  </ul>
</div>

关于javascript - jquery 在未嵌套的文本周围添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42885172/

相关文章:

javascript - JS中如何将一维数组转换为列向量

javascript - Reactjs - 强制刷新的工作流程是什么?

jquery鼠标悬停效果bug,mouseover事件总是在mouseout时触发几次

带切换功能的 Jquery 页面/表单步骤?

javascript - react : custom select element

javascript - Angular 获取 Controller 构造函数

javascript - 如何在 ES6 中使用其值过滤对象

Javascript - 定义图像树的有效方法

.net - 自动化 W3C 验证

html - 选择CSS中的其他li