Javascript,将文本添加到具有现有文本节点的元素中
Javascript,To add text to element which has a exsisting text-node
我想使用nodeValue
属性或textContentPropery
在<h1>
标记中的"Groceries"旁边添加一个文本。我添加了两种对我不起作用的方法。给我一个为什么没有发生的原因,而不仅仅是答案。我不想在此使用appendChild
属性。
<body>
<h1 id="head">Groceries</h1
><div id="li-container"
><ul
><li>item2</li
><li>item3</li
><li>item4</li
><li>item5</li
></ul
></div>
<script language="javascript" type="text/javascript">
var list = document.getElementsByTagName("li");
var head = document.getElementById("head").firstChild.nodeValue;
head.nodeValue = head + list.length;
//OR OR OR OR
//
var head = document.getElementById("head").firstChild.textContent;
head.textContent = head + list.length;
</script>
</body>
var head = document.getElementById("head").firstChild.nodeValue;
此处head仅包含文本Groceries
。因此您无法访问groceries
.nodevalue
所以你必须使用:
var head = document.getElementById("head").firstChild;
head.textContent = head.nodeValue + list.length;
在这里,我们首先将textNode的引用存储在head
中。
在第二行中,我们正在设置该textNode中的textContent。
在您的情况下,head
是一个字符串值,因为您将头元素的nodeValue分配给它,但对变量值所做的任何更改都不会反映在头中,因为字符串不是可变对象。
您需要参考文本节点元素并设置其节点值
var list = document.getElementsByTagName("li");
var head = document.getElementById("head").firstChild;
console.log(head)
head.nodeValue = head.nodeValue + list.length;
演示:Fiddle
相关文章:
- Javascript,将文本添加到具有现有文本节点的元素中
- 拆分文本节点
- 使用TreeWalker检索非Javascript文本节点
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- JavaScript 文本节点属性
- 获取文本节点的宽度
- 如何将由
分隔的文本节点与它们自己的标记包装起来
- 如何返回jQuery对象中的文本节点
- 包装和打开jquery后合并文本节点
- 有没有一种方法可以在javascript中为文本节点添加属性
- 使用文本节点打印段落
- 计算文本节点中的字母数
- 正则表达式:仅在标记中匹配文本节点
- "“错误”;导致故障的文本节点
- 正在创建文本节点
- jQuery,如何测试一个变量是一个文本节点,不包含任何标记
- 使用 casperjs 抓取文本节点的最快方法
- 如何在文本节点中保留空格
- 如何获取文档片段中的所有文本节点
- 选择“相邻同级”而不干预文本节点