Javascript 替换span元素的文本

Javascript 替换span元素的文本,javascript,replace,entity,Javascript,Replace,Entity,我想替换方形图标(html文件中span元素中的文本:■) 使用箭头1:►. 当菜单项前面的图标与其页面ID匹配时,会发生这种情况,以便访问者知道他位于该菜单项指示的页面上 我经历了很多问题,但还是坚持了这一点 var newIcon = "&#9658;"; // arrow icon for (var j = 0; j < rightMenuIDs.length; j++){ var thisID = rightMenuIDs[j]; var thisSpanI

我想替换方形图标(html文件中span元素中的文本:■) 使用箭头1:►. 当菜单项前面的图标与其页面ID匹配时,会发生这种情况,以便访问者知道他位于该菜单项指示的页面上

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

var newIcon = "&#9658;"; // 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;
    }
}
var newIcon=“►;”//箭头图标
对于(var j=0;j
我查看了console.log,它说这个span图标已经更新为箭头图标。但是页面上没有任何变化。 我尝试了replace()和其他方法,但没有成功

如果有更好/正确的方法,有人能告诉我吗

谢谢!

您必须使用或
elem.innerText
来更新元素/节点的文本。()

另外,搜索一些现代的元素选择方法。

当您说:

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

尝试:

这将更改节点的实际属性


还请注意,字符串应使用Unicode格式,而不是HTML实体,即,
\u25ba

我们需要知道这些变量代表的是什么。变量正在更改,但页面上的内容没有更改。这应该起作用:
右菜单[j]。子项[0]。子项[0]。子项节点[0].nodeValue=newIcon;
或者您可以设置
ThisSpanCon=Right菜单[j]。子项[0]。子项[0]。子项[0]。子项节点[0]<代码/ >代码>这个StasiCon。NoDEValue= NeXICANIO/COD> @ JVIGES不,很明显……代码>节点。NoDEValue完全合法。谢谢Wouter J的选择建议。我刚开始练习JavaScript。所以我觉得最好还是用一些老式的方式来确保我的基础正确。@ CytoWeb96-好计划-支持。最好先了解原生DOM遍历。@Alnitak我完全同意你的观点!(我没有建议使用jQuery之类的工具)然而,我不理解否决票?这个答案只是对这个问题的正确回答,你也可以使用
nodeValue
,但是
innerText
也有效吗?这是一些启示。我想这是一些细微差别,我必须花些时间仔细考虑一下。如果我可以继续这个话题,稍微有点误入歧途:►;真的没有出现t就像一个实心的右箭头。这只是我如何放置实体,还是我必须使用“图标字体”来解决这个问题?不知道,这取决于你有什么系统。试试看
var thisSpanNode = rightMenu[j].children[0].children[0].childNodes[0];
if (thisID === bodyIDsliced) {
    thisSpanNode.nodeValue = newIcon;
}