-2

ボタンを押すとリンクが変わるようにコードを作成しようとしています。HTMLコードは次のとおりです。

<div id="body">
<div class="mainbody">
<p id="para"></p>
<h1>Here is my next Javascript Example</h1><br />
<p id="link1"><a href="index.html" title="Portfolio main" target="_blank">Portfolio Main</a></p>
<input type="button" value="Change Link" id="bttn2" onClick="changeLink();" />    
</div>

Javascript コードは次のとおりです。

// JavaScript Document
function changeLink()
    {
    document.getElementById("link1").innerHTML="Paramore";
    document.getElementById("link1").href="http://www.paramore.com";
    document.getElementById("link1").target="_blank";
    }

私の問題は、ボタンを押すとリンクが変わることですが、「Paramore」という単語は実際にはリンクではありません。

4

4 に答える 4

1

リンクは変わりますが、「パラモア」と表示される単語は実際にはリンクではありません。

これは、リンクを静的テキストだけに置き換えたためです。Paramore段落のテキストを設定することで、リンクを消去したためです。

id="link1"属性をp要素から要素に移動するaと、並べ替えられます。

または、次のようにします。

var anchor = document.getElementById("link1").getElementsByTagName('a')[0];
anchor.innerHTML="Paramore";
anchor.href="http://www.paramore.com";
anchor.target="_blank";

しかし、クリックでアンカーを変更するのはかなり危険です。

于 2013-03-06T00:40:03.020 に答える
0

ID は要素上にある必要があります<a>。要素ではありません<p>。これを試して:

<div id="body">
<div class="mainbody">
<p id="para"></p>
<h1>Here is my next Javascript Example</h1><br />
<p ><a id="link1" href="index.html" title="Portfolio main" target="_blank">Portfolio Main</a></p>
<input type="button" value="Change Link" id="bttn2" onClick="changeLink();" />    
</div>

ここで行われたのと同じ方法: http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_elmnt_innerhtml

于 2013-03-06T00:39:53.953 に答える
0

document.getElementById("link1") は段落 <p>要素を取得します。必要なのはアンカー <a>要素です。属性id="link1"代わりは?

于 2013-03-06T00:40:31.353 に答える
0

[1] id="link1" は、段落タグではなくアンカー タグにある必要があります

[2] JavaScript DOM オブジェクトに .setAttribute メソッドを使用する

obj = document.getElementById("link1");
obj.setAttribute("href","http://www.paramore.com");
obj.setAttribute("target","_blank");
于 2013-03-06T00:41:58.440 に答える