在包含其他标签的标签中,将一个文本替换为另一个文本
Replace one text with another in a tag containing other tags
我有以下HTML元素:
<p id="myP">Some text<span onclick="myFunc()"> to change</span></p>
我的想法是在有人单击"更改"范围时将"一些文本"替换为"其他一些文本"。所以我的第一次尝试是:
function myFunc(){
var myP = document.getElementById("myP");
myP.innerText = "Some other text";
}
。但是,我已经从错误中吸取了教训,这不仅会覆盖文本,还会覆盖嵌套在 p 中的 span 元素。因此,使用上次的学习,我尝试创建一个文本节点:
function myFunc(){
var myP = document.getElementById("myP");
myP.appendChild(document.createTextNode("Some other text"));
}
然而,这显然是错误的,因为它会附加文本而不是替换它。我应该如何编写我的 JavaScript 函数以获得一些文本与其他一些文本的纯粹替换,但不会影响嵌套范围?
我知道这似乎是一个基本问题,但我是一个完全的初学者,还不知道如何处理 HTML 对象。提前致谢
注意我认为我可以简单地做到这一点:
myP.innerText = "Some other text<span onclick="myFunc()"> to change</span>"
。但除了因为这是一个最小化的例子而变得复杂之外,我认为这是有史以来最不优雅的解决方案,所以我想学习正确的方法。
只需获取 textNode
function myFunc(){
var myP = document.getElementById("myP").firstChild;
myP.nodeValue = "Some other text";
}
<p id="myP">Some text<span onclick="myFunc()"> to change</span></p>
为什么不使用另一个元素来实现它呢?
<p><span id="to-change">Some text</span> <span onclick="myFunc()">to change</span></p>
function myFunc(){
document.getElementById("to-change").innerText = "Some other text";
}
或者
,您可以将第一个文本节点替换为新节点:
function myFunc() {
var myP = document.getElementById("myP");
myP.replaceChild(document.createTextNode("Some other text"), myP.childNodes[0]);
}
<p id="myP">Some text<span onclick="myFunc()"> to change</span></p>
对于真正简单的方法:
function myFunc(){
var myP = document.getElementById("myP");
var cn = myP.childNodes[0]; // where cn.nodeType == 3 (text node)
cn.textContent = "Some other text";
}
<p id="myP">Some text<span onclick="myFunc()"> to change</span></p>
相关文章:
- 在一个javascript文件中为整个网站创建标签
- 在Flickr API的标签参数中传递一个变量
- 如何创建一个表并在单击按钮时插入此标签和文本字段
- 如何在一个网页网站中处理基于document.write()的广告标签
- 使用几个<脚本>标签不会't工作-只调用一个脚本
- 有没有一种方法可以在所有嵌套循环之后放置一个标签,以便在一步中将它们全部打断
- react-让一个元素返回两个相邻的<tr>标签
- 我可以按特定的顺序迭代一个标签中的不同数据标签吗
- 你能从另一个页面中选择标签吗
- 如何在另一个 html 标签内选择 web 元素硒 Web 驱动程序与 html 源
- 链接问题:下一个字符包含在<a>TinyMce ui TinyMce中的标签
- 注入<脚本>标签给它一个合适的位置
- 我可以遍历一个p标签并更改为ul吗
- 如何将一个标签设置为图形的整行
- Javascript - 使用