0

我想用一个箭头替换方形图标(html 文件中的 span 元素中的文本:■):►。当菜单项前面的此图标与其页面 ID 匹配时会发生这种情况,因此访问者知道他在此菜单项指示的页面上。

我经历了很多问题,但坚持这一点。

var newIcon = "►"; // arrow icon
for (var j = 0; j < rightMenuIDs.length; j++){
    var thisID = rightMenuIDs[j];
    var thisSpanIcon = rightMenu[j].children[0].children[0].childNodes[0].nodeValue;
    if(thisID === bodyIDsliced){
        thisSpanIcon = newIcon;
    }
}

我检查了 console.log,它说 thisSpanIcon 已更新为箭头图标。但是页面上没有任何变化。我尝试了 replace() 和其他方法无济于事。

如果有更好/正确的方法可以做到这一点,有人可以躺在我身上吗?

谢谢!

4

2 回答 2

1

当你说:

thisSpanIcon = newIcon;

您只是覆盖thisSpanIcon包含节点现有属性副本nodeValue的局部变量,而不是更改属性(以及节点)本身。

尝试:

var thisSpanNode = rightMenu[j].children[0].children[0].childNodes[0];
if (thisID === bodyIDsliced) {
    thisSpanNode.nodeValue = newIcon;
}

这应该改变节点的实际属性。

另请注意,您应该对字符串使用 Unicode 格式,而不是 HTML 实体,即\u25ba.

于 2013-03-26T21:59:23.997 回答
-1

您必须使用elem.innerHTMLelem.innerText更新元素/节点的文本。(小例子

另外,寻找一些现代的选择元素的方法。

于 2013-03-26T21:58:45.747 回答