操作jQuery节点的文本值
Manipulate text value of jQuery nodes
我选择了HTML页面上的所有节点,如下所示:
var all = $('*');
然后遍历每个节点,检查是否每个节点都有一个相关的文本值:
var newDom = all.map((i, node) => {
if ($(node).text()) {
var temp = $(node).text() + 'a';
$(node).text(temp);
}
});
我最终想在浏览器中查看被操纵的DOM。如果没有上述操作,all.html()
将产生所选择的确切网页,正如我们所期望的那样。同时,newDom.html()
产生以下错误:
Unhandled rejection Error: getaddrinfo ENOTFOUND on.ico on.ico:80
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)
乍一看,为什么这可能不工作,因为我有上面?
文本节点没有选择器,但是您可以编写一个递归函数,将它们作为基于根节点的数组获取。然后你可以循环遍历数组并对文本节点做一些事情,例如
/* Return all text nodes that are descendents of root as an array
** @param {DOMElement} root - node to start from, defaults to document.body
** @returns {Array} array of all text nodes that are descendents of root
*/
function getTextNodes(root) {
var root = root || document.body;
var textNodes = [];
// Don't process text inside these nodes
var elementsToIgnore = {'script':true};
if (root && root.nodeType == 1) {
Array.prototype.forEach.call(root.childNodes || [root], function(node) {
if (node.nodeType == 1 && node.tagName && !(node.tagName.toLowerCase() in elementsToIgnore)) {
textNodes = textNodes.concat(getTextNodes(node));
} else if (node.nodeType == 3){
textNodes.push(node);
}
});
} else if (root.nodeType == 3) {
textNodes.push(root);
}
return textNodes;
}
<p>Here is some text</p>
<ol>
<li>List item 1
<li>List item 2
<ol>
<li>List item 2.1
<li>List item 2.3
</ol>
<li>List item 3
</ol>
<textarea>Gets text in here too</textarea>
<br>
<button onclick="getTextNodes().forEach(function(node){node.data = node.data.replace(/s/g,'$')})">Replace all 's' with $</button>
相关文章:
- Javascript,将文本添加到具有现有文本节点的元素中
- 拆分文本节点
- 使用TreeWalker检索非Javascript文本节点
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- JavaScript 文本节点属性
- 获取文本节点的宽度
- 如何将由
分隔的文本节点与它们自己的标记包装起来
- 如何返回jQuery对象中的文本节点
- 包装和打开jquery后合并文本节点
- 有没有一种方法可以在javascript中为文本节点添加属性
- 使用文本节点打印段落
- 计算文本节点中的字母数
- 正则表达式:仅在标记中匹配文本节点
- "“错误”;导致故障的文本节点
- 正在创建文本节点
- jQuery,如何测试一个变量是一个文本节点,不包含任何标记
- 使用 casperjs 抓取文本节点的最快方法
- 如何在文本节点中保留空格
- 如何获取文档片段中的所有文本节点
- 选择“相邻同级”而不干预文本节点