gpt4 book ai didi

javascript - 文本节点可以有一个作为元素节点的子节点吗?

转载 作者:搜寻专家 更新时间:2023-11-01 05:18:43 25 4
gpt4 key购买 nike

说,下面是可能的:

textNode.appendChild(elementNode);

elementNode是指nodeType设置为1

textNode 是指nodeType设置为2

制作不易。

我问这个的原因是我找到了一个将引用链接添加到引用末尾的函数:

function displayCitations() {
var quotes = document.getElementsByTagName("blockquote");
for (var i=0; i<quotes.length; i++) {
if (!quotes[i].getAttribute("cite")) continue;
var url = quotes[i].getAttribute("cite");
var quoteChildren = quotes[i].getElementsByTagName('*');
if (quoteChildren.length < 1) continue;
var elem = quoteChildren[quoteChildren.length - 1];
var link = document.createElement("a");
var link_text = document.createTextNode("source");
link.appendChild(link_text);
link.setAttribute("href",url);
var superscript = document.createElement("sup");
superscript.appendChild(link);
elem.appendChild(superscript);
}
}

看到最后一行“elem.appendChild(superscript);”,其中 elem 可以是 textNode 吗?

我认为很难证明它的原因是因为很难访问指定的textNode。有没有人有办法实现这一目标?

最佳答案

不,文本节点总是叶子。相反,您必须向文本节点的父节点添加新节点 - 使它们成为文本节点的兄弟节点。

编辑

这是我尝试将子节点添加到文本节点的示例。

<div id="test">my only child is this text node</div>

<script type="text/javascript">

var div = document.getElementById( 'test' );
var textNode = div.childNodes[0];
var superscript = document.createElement("sup");
superscript.text = 'test';

textNode.appendChild( superscript );

</script>

Firefox 给出错误

uncaught exception: Node cannot be inserted at the specified point in the hierarchy (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)

关于javascript - 文本节点可以有一个作为元素节点的子节点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1111258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com