我试图比较两个字符串,由于某种原因,我得到的结果是“假”。

我将代码分解为最简单的功能:

<script type="text/javascript">
function selectCat(cat) {
    var catName = cat.firstChild.nodeValue;
    alert(catName);
    if(catName.toString() == "Acronyms") {
        alert("True");
    } else {
        alert("False");
    }
}
</script>
</head>

<body>
<ul>
<li onclick="selectCat(this)">Acronyms</li>
</ul>
</body>


这在Dreamweaver的实时视图以及IE8(当我按F12进行预览时)中都可以正常工作。但是,当我将此页面上载到公司的Web内容管理器(IBM WebSphere Portal)时,它不再起作用。

我不知道环境之间的区别是什么,但这很令人沮丧。任何人都有任何想法,为什么它可能不会将类别名称视为字符串?

最佳答案

出于某种原因,IE在nodeValue的末尾包括一个额外的空间,即您实际上得到的是“首字母缩写词”。

编辑:
要删除尾随空格,您可以添加

if(catName.charAt(catName.length-1) == " "){
    catName = catName.substr(0,catName.length-1);
}

关于javascript - IE8中的JavaScript字符串比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10745536/

10-12 02:49