gpt4 book ai didi

javascript - 在 div 的祖 parent 之后插入行

转载 作者:行者123 更新时间:2023-12-02 18:56:03 26 4
gpt4 key购买 nike

this 对应于特定的 div。

我想使用此代码在其祖 parent 之后插入一段代码,但它似乎不起作用:this.parentNode[0].parentNode[0].insertAfter(newrespondform);

如果需要,我可以提供更多代码,但在尝试调试后,我很确定问题出在此处。我怎样才能写它才能起作用?我无法向祖 parent 添加 ID 来以这种方式选择它。

感谢您的帮助:)

编辑 - 这是页面加载时加载的完整代码:

function comrespond(){
function addresform(){
var resid = this.getAttribute('id'),
grandParent = this.parentNode.parentNode,
newrespondform = '<div class="commentresponse"><span></span><span><p class="author">Leave a reply:</p><form id="commentform" action="http://split.snippetspace.com/wp-comments-post.php" method="post" onsubmit="addcomment(); return false;"><input id="author" aria-required="true" name="author" type="text" placeholder="Your name"/><input id="email" aria-required="true" name="email" type="text" placeholder="Email address" /><textarea id="comment" aria-required="true" name="comment" rows="8"></textarea><input id="submit" name="submit" type="submit" value="Post Comment" /><input id="comment_post_ID" name="comment_post_ID" type="hidden" value="'+resid+'" /></form></span></div>';
grandParent.parentNode.insertBefore(newrespondform, grandParent.nextSibling);
}
var responsebtn = document.getElementsByClassName('comment-reply-link');
for(var i = 0; i < responsebtn.length; i++){
bindEvt(responsebtn[i], "click", addresform);
};}

HTML:

<div>
<span></span>
<span>
<p class="author">Christopher</p>
<div class="comment-reply-link" id="106"></div>
<p>test comment 2 to see if it increments!</p>
</span>
</div>

最佳答案

您的代码中有几个问题。

首先,属性 parentNode 仅包含单个节点,而不是一组节点,因此您不需要应用 [0] 来获取第一个节点。其次,原生 JavaScript 中没有 insertAfter 方法。相反,您可以使用 insertBefore 的技巧。所以解决方案可能如下所示:

var grandParent = this.parentNode.parentNode;
grandParent.parentNode.insertBefore(newrespondform, grandParent.nextSibling);

关于javascript - 在 div 的祖 parent 之后插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15340631/

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