0

我正在尝试比较两个字符串,由于某种原因,结果是“假”。

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

<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 的 Live View 和 IE8 中运行良好(当我按 F12 进行预览时)。但是,当我将此页面上传到我公司的 Web 内容管理器 (IBM WebSphere Portal) 时,它不再起作用。

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

4

2 回答 2

2

出于某种原因,IE 在 nodeValue 的末尾包含了一个额外的空格,即您实际得到的是“Acronyms”。

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

if(catName.charAt(catName.length-1) == " "){
    catName = catName.substr(0,catName.length-1);
}
于 2012-05-24T22:10:37.403 回答
1

如果 IE 在 nodeValue 末尾包含一个额外的空格,请尝试 -

var catName; 
catName = (catName.toString()).trim();

然后将其与“Acronyms”进行比较。

于 2012-05-24T22:28:54.500 回答