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 返回一个列表(因此是“...Elements...”,而不是“...Element...”)。列表没有父节点。

要么用于getElementById引用具有给定 id 的单个元素,要么遍历 getElementsByName 返回的列表,直到找到您要查找的确切元素。

于 2012-01-10T15:10:28.563 回答