Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript在div后显示按钮_Javascript - Fatal编程技术网

使用JavaScript在div后显示按钮

使用JavaScript在div后显示按钮,javascript,Javascript,我正在尝试使用Google Tag Manager在一个没有id的div后面添加一个带有链接的按钮。我使用下面的代码获取特定的div(没有id),但是当我尝试使用innerHTML将按钮放在该div之后时,该div将被按钮替换,如果使用appendChild(在代码中注释),则不会发生任何事情 <script> var HTML = '<a href="#" target="_blank" class="button" >Send</a>' var t

我正在尝试使用Google Tag Manager在一个没有id的div后面添加一个带有链接的按钮。我使用下面的代码获取特定的div(没有id),但是当我尝试使用innerHTML将按钮放在该div之后时,该div将被按钮替换,如果使用appendChild(在代码中注释),则不会发生任何事情

<script>
  var HTML = '<a href="#" target="_blank" class="button" >Send</a>'
  var title = document.getElementsByClassName("class_title");
  title[0].nextSibling.nextSibling.setAttribute("id", "newdiv");
  document.getElementById("newdiv").innerHTML = HTML;
  //getElementById("newscript").appendChild(HTML);
</script>

var HTML=''
var title=document.getElementsByClassName(“class_title”);
标题[0].nextSibling.nextSibling.setAttribute(“id”、“newdiv”);
document.getElementById(“newdiv”).innerHTML=HTML;
//getElementById(“newscript”).appendChild(HTML);
我做错了什么?非常感谢

这很容易

你的问题已经回答了

在您的情况下,请执行以下操作:

// Create a variable for the element you want. Make it easy to read.
var element = document.getElementById("new_div");

element.parentNode.insertBefore(HTML, element.nextSibling);

阅读链接问题以查看详细解释。

通常,要在一个节点之后插入另一个节点,您可以使用以下选项(摘自):

要使用
insertBefore
,您应该使用JavaScript创建一个link元素,然后插入它,如下所示:

<script>
  var a = document.createElement('a');
  var linkText = document.createTextNode("Send");
  a.appendChild(linkText);
  a.target = "_blank";
  a.href = "#";
  a.class = "button";
  var referenceNode = document.getElementsByClassName("class_title")[0].nextSibling.nextSibling;
  referenceNode.parentNode.insertBefore(a, referenceNode.nextSibling);
</script>

var a=document.createElement('a');
var linkText=document.createTextNode(“发送”);
a、 appendChild(linkText);
a、 target=“_blank”;
a、 href=“#”;
a、 class=“按钮”;
var referenceNode=document.getElementsByClassName(“类标题”)[0].nextSibling.nextSibling;
referenceNode.parentNode.insertBefore(a,referenceNode.nextSibling);

这正是我需要的!在你的帮助下,我已经能够完全按照我想要的方式来做了,现在它就像一个符咒。我必须说,这是我唯一的工作方式。非常感谢,@d4nyll!谢谢,贝托·席尔瓦!但是,我还需要为HTML元素设置一些格式。
<script>
  var a = document.createElement('a');
  var linkText = document.createTextNode("Send");
  a.appendChild(linkText);
  a.target = "_blank";
  a.href = "#";
  a.class = "button";
  var referenceNode = document.getElementsByClassName("class_title")[0].nextSibling.nextSibling;
  referenceNode.parentNode.insertBefore(a, referenceNode.nextSibling);
</script>