javascript - 如何使用 jquery 在新标签中包装与强标签同级的字符串?
问题描述
在像下面的示例这样的 html 中,我需要text I need to select
使用自定义类将部件包装在 span 标记中,但是如何strong
使用 jquery 仅选择不包括其上方标记中的内容的那部分?
<span>
<strong> random gibberish </strong>
text I need to select
</span>
编辑:仅.text()
在父级上使用是行不通的,因为这会将整个内部 html 转换为文本,包括其中的部分strong
解决方案
您可以使用 nextSibling.nodeValue 来获取强标记之后的文本。然后,您可以对文本内容执行 replace() 以将标签包裹在其周围 - 我正在使用带有 newClass 和相关样式的跨度来执行此操作。
var strongEl = document.querySelector('strong');
var siblingEl = strongEl.nextSibling.nodeValue;
var spanContent = $('span').html();
var newSpanContent = '<span class="newClass">'+siblingEl +'</span>';
$('span').html(spanContent.replace(siblingEl, newSpanContent));
console.log(siblingEl);
span.newClass {
color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>
<strong> random gibberish </strong>
text I need to select
</span>
推荐阅读
- xslt - 如何在标头之间获取数据?
- node.js - 尝试使用 MS Graph API 访问其他租户用户日历时出错
- python - Python密码检查器 - 如果语句不正确
- javascript - 如何正确阻止 bluebird promise.map
- swift - 现在 RxSwift 测试失败 .delay 已被引入
- php - 如何在不提交表单的情况下获取文件信息
- visual-studio-2017 - TestContext 属性为空
- list - 循环遍历python中的字典列表
- ios - 如何使容器视图中的表格视图不会在键盘弹出窗口中反弹?
- java - StringBuilder 中的多个 StringBuilder。值得吗?