JavaScript 中的节点

Posted

技术标签:

【中文标题】JavaScript 中的节点【英文标题】:Nodes in JavaScript 【发布时间】:2017-08-05 09:01:21 【问题描述】:

我是节点的新手,我只是想了解一下它们。无论出于何种原因,这不起作用,我已经尝试了我能找到的任何东西,但没有运气。

这就是我正在尝试做的“使用 javascript 函数 getElementById(),使用 nodeValue 访问 mySpecialParagraph 的文本。使用 createElement() 创建一个段落元素,并使用 createTextNode(),将一个字符串附加到这个新的显示“请参阅:我可以使用 JavaScript”的元素。 使用 insertBefore(),在 mySpecialParagraph 之前插入此文本。"

<script type="text/JavaScript">
  var msp = document.getElementById("mySpecialParagraph");
  var parent = msp.parent();

  var para = document.createElement("p");
  var textNode = document.createTextNode(" See: I can use JavaScript");
  para.appendChild(textNode);
  parent.insertBefore(para, msp);
</script>

【问题讨论】:

控制台有错误吗? 没有错误,我已经通过验证器,网页上没有任何内容 您能否将其添加到 jsfiddle 或类似的东西并发布链接?另外,您是否尝试使用 jQuery?另外,请详细说明您的问题,以便我们确切知道您要完成的工作(您的意图) var parent = msp.parent(); 我认为应该是var parent = msp.parentNode; 如果是这样的话,您应该会在控制台中报告错误。 请阅读How to Ask,了解如何创建minimal reproducible example。 【参考方案1】:

.parent() 在纯 JS 中不存在。它应该是.parentElement.parentNode。后者是我认为最受欢迎的。两者的区别在here讨论。

var msp = document.getElementById("mySpecialParagraph");
var parent = msp.parentNode;

var para = document.createElement("p");
var textNode = document.createTextNode(" See: I can use JavaScript");
para.appendChild(textNode);
parent.insertBefore(para, msp);
&lt;p id="mySpecialParagraph"&gt;&lt;/p&gt;

【讨论】:

您可以在此处看到它正在工作,所以它确实有效。您的代码中一定有其他问题。可能是您的 html 抱歉,我不知道你可以运行它。我刚做了一个jsfiddle你可以看看吗? jsfiddle.net/#&togetherjs=7rmvadgLUT .parentNode 不需要括号 ()。这不是一个函数。这是一个价值。

以上是关于JavaScript 中的节点的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中的节点

javascript 得到某一节点在父节点中的索引

javascript 节点中的UUID生成器

javascript 清理文档中的节点

markdown JavaScript中的树节点

javascript 捕获了节点中的所有启动异常