为什么这个javascript警报会触发两次? 函数ChangeStyle() { document.getElementById(“p1”).innerHTML= ""; }

为什么这个javascript警报会触发两次? 函数ChangeStyle() { document.getElementById(“p1”).innerHTML= ""; },javascript,html,onclick,alert,innerhtml,Javascript,Html,Onclick,Alert,Innerhtml,这是完整的代码。出于某种原因,警报发出了两次。我想不出来 通过设置链接的innerHTML,您正在第一个链接的内部创建另一个链接 当您单击此内部链接时,单击事件将冒泡并触发外部单击处理程序。通过设置链接的innerHTML,您正在第一个链接的内部创建另一个链接 单击此内部链接时,单击事件将冒泡并触发外部单击处理程序。您可能想将链接包装到另一个元素中: <script type="text/javascript"> function ChangeStyle() { docume

这是完整的代码。出于某种原因,警报发出了两次。我想不出来

通过设置链接的
innerHTML
,您正在第一个链接的内部创建另一个链接


当您单击此内部链接时,单击事件将冒泡并触发外部单击处理程序。

通过设置链接的
innerHTML
,您正在第一个链接的内部创建另一个链接


单击此内部链接时,单击事件将冒泡并触发外部单击处理程序。

您可能想将链接包装到另一个元素中:

<script type="text/javascript">
function ChangeStyle()
{
    document.getElementById("p1").innerHTML = 
        "<a href='javascript:void()' onclick=\"window.location.href='http://google.com'\">The New Link</a>";
}
</script>
<a id="p1" href="javascript:void()" onclick="ChangeStyle();alert('hello');">The Link</a>

否则,您将在链接内部创建链接

您可能打算将链接包装到另一个元素中:

<script type="text/javascript">
function ChangeStyle()
{
    document.getElementById("p1").innerHTML = 
        "<a href='javascript:void()' onclick=\"window.location.href='http://google.com'\">The New Link</a>";
}
</script>
<a id="p1" href="javascript:void()" onclick="ChangeStyle();alert('hello');">The Link</a>

否则,您将在链接内部创建一个链接

在使用ChangeStyle()的地方添加代码供参考,一旦单击调用,就会引用调用元素。不需要使用getElementById再次查找元素。示例:您正在将一个链接放入一个链接中,是否只是试图替换它?请在使用ChangeStyle()的地方添加代码供参考,一旦单击调用,就会引用调用元素。不需要使用getElementById再次查找元素。示例:您正在将一个链接放入一个链接中,您只是想替换它吗?感谢您的快速响应,我将如何防止它。感谢您的快速响应,我将如何防止它。感谢您向我展示它应该如何编写。我现在明白我的错误了,你所说的链接是指另一个链接中的链接。再次感谢你的帖子。谢谢你告诉我应该怎么写。我现在明白我的错误了,你所说的链接是指另一个链接中的链接。再次感谢你的帖子。
<script type="text/javascript">
function ChangeStyle()
{
  document.getElementById("p1").innerHTML = "<a [...]>The New Link</a>";
}
</script>