0

2 つの文字列を比較しようとしていますが、何らかの理由で結果が "false" になっています。

コードを最も単純な関数に分解しました。

<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) にアップロードすると、機能しなくなりました。

環境によって何が違うのかわかりませんが、かなりイライラします。カテゴリ名を文字列として扱わない理由を知っている人はいますか?

4

2 に答える 2

2

何らかの理由で、IE は nodeValue の末尾に余分なスペースを含めています。つまり、実際に取得しているのは「頭字語」です。

編集:追加できる末尾のスペースを削除するには

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();

次に、「頭字語」と比較します。

于 2012-05-24T22:28:54.500 に答える