【问题标题】:Nodes in JavaScriptJavaScript 中的节点
【发布时间】: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

标签: javascript html dom nodes


【解决方案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 不需要括号 ()。这不是一个函数。这是一个价值。
猜你喜欢
  • 2016-01-07
  • 1970-01-01
  • 2012-11-01
  • 2012-02-12
  • 1970-01-01
  • 2014-09-18
  • 2020-07-06
  • 1970-01-01
  • 2011-07-28
相关资源
最近更新 更多