我正在尝试比较两个字符串,由于某种原因,我的结果是“假”。
我已经将代码分解为最简单的功能:
<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)时,它不再有效。
我不知道环境之间有什么不同,但它非常令人沮丧。任何人都有任何想法,为什么它可能不会将类别名称视为字符串?
答案 0 :(得分:2)
出于某种原因,IE在nodeValue的末尾包含一个额外的空格,即你实际得到的是“缩略语”。
修改强>: 要删除尾随空格,您可以添加
if(catName.charAt(catName.length-1) == " "){
catName = catName.substr(0,catName.length-1);
}
答案 1 :(得分:1)
如果IE在nodeValue的末尾包含一个额外的空格,请尝试 -
var catName;
catName = (catName.toString()).trim();
然后将其与“缩略语”进行比较。