0

これは非常に単純に思えますが、私は JavaScript を初めて使用します。私のページにリンクがあります。このリンクをクリックすると、2 つのことが起こります。1) html を使用すると、ページ上の参照されたアンカー タグの場所にページがジャンプします。2) リンクを保持する div の背景色が変わります。

HTML

<a href="#abcd"  onclick="makeRed(this.href);">Link to div on page</a>

<div id="abcd">
    <a name="abcd">Not a clickable link.</a>
</div>

JS

function makeRed(x) {
var highlight=x.slice(-4);
document.getElementsByName(highlight).parentNode.style.backgroundColor="red";
}

Firebug は document.getElementsByName(highlight).parentNode が定義されていないことを教えてくれます。これが私が混乱している場所です。

4

2 に答える 2

2

交換

document.getElementsByName(highlight).parentNode.style.backgroundColor="red";

document.getElementsByName(highlight)[0].parentNode.style.backgroundColor="red";

getElementsByName は配列を返すため

于 2012-01-10T15:09:41.700 に答える
1

getElementsByName リストを返します (したがって、"...Element..." ではなく "...Elements...")。リストにはparentNodesがありません。

特定の ID を持つ単一の要素を参照するために使用するかgetElementById、探している正確な要素が見つかるまで、getElementsByName によって返されるリストを反復処理します。

于 2012-01-10T15:10:28.563 に答える