0
<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>

これは完全なコードです。何らかの理由で、アラートが2回発生します。私はそれを理解することはできません。

4

2 に答える 2

5

リンクのを設定することによりinnerHTML、最初のリンク内に別のリンクを作成します。

この内側のリンクをクリックすると、クリックイベントが発生し、外側のクリックハンドラーも起動します。

于 2012-08-13T18:33:41.557 に答える
1

おそらく、リンクを別の要素にラップするつもりでした:

<span id="p1">
 <a href="javascript:void()" onclick="ChangeStyle();alert('hello');">The Link</a>
</span>

これで、おそらく意図した方法p1での内容を置き換えることができます。innerHTML

<script type="text/javascript">
function ChangeStyle()
{
  document.getElementById("p1").innerHTML = "<a [...]>The New Link</a>";
}
</script>

それ以外の場合は、リンク内にリンクを作成しています

于 2012-08-13T18:34:40.867 に答える