将父标签名称放在 jQuery 节点中
Placing parent tag name in jQuery nodes
>我有一个大约100个元素的html文件。在我的javascript文件中,我有一个var,它使用jQuery保存html文档中的所有元素。然后,我有一个 var 来保存 html 文档中作为文本节点的所有元素。我想做的是为每个非文本节点创建一个新的子节点,并将 innerHTML 设置为其父标记名称。我该怎么做呢?
//All elements
var elements = $("*")
//Text Nodes only
var textNodes = elements.contents().filter(function() {
return this.nodeType == 3;
});
我可以提出一个更干净的解决方案,它不会用额外的元素污染 DOM 树(可以选择器可以有很多针对*
元素)。为什么不使用一些CSS来使用伪元素:after
标签名称?
首先为每个元素设置实际的标签名称,然后使用此 CSS 显示它们:
$("*").attr('data-tag', function() {
return this.tagName;
});
*:after {
content: attr(data-tag);
font-size: 10px;
color: #AAA;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Test content</div>
希望这对你有用。
不确定我是否完全理解您的问题,但这需要找到所有不包含文本的节点,并在其中包含其节点名称的节点上附加一个。
//All elements
var elements = $("*")
//Text Nodes only
var nodes = elements.contents().filter(function (i) {
if ( this.nodeType !== 3 ) {
var el = document.createElement('div');
el.innerHTML = this.nodeName;
this.appendChild(el)
}
});
相关文章:
- 如何使用jquery获取Json的节点
- 获取不带Jquery的嵌套父HREF节点
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- 使用jQuery+Javascript识别一个空文本节点
- 使用节点js的Bootstrap和Jquery
- jquery重复节点匹配和删除
- 以后添加的节点不会附加到 jQuery UI 函数
- jQuery解包多个递归节点
- 使用 jQuery 将自定义 ID 添加到克隆的 HTML 节点
- 如何返回jQuery对象中的文本节点
- Javascript在没有jQuery的情况下获取X父节点
- 包装和打开jquery后合并文本节点
- 在没有 jquery 的情况下更改子节点(父节点具有 ID)中的链接文本
- 将jQuery节点转义为文本,以便HTML代码可见
- JQuery 选择父节点并更改其类名
- Jquery onclick事件加载XML的特定节点
- 使用jQuery从强制布局节点中删除所有.fixed类
- JQuery 节点检查是否不为空
- 将父标签名称放在 jQuery 节点中
- 操作jQuery节点的文本值