2010-07-02 48 views
0

請看下面的示例。javascript string.lastIndexOf不適用於範圍innerHTML

<html> 
<body> 
<form> 
<span id="spTest">Your current operation: Modify &raquo; newone</span> 
</form> 
<script type="text/javascript"> 
var sp = document.getElementById("spTest"); 
var str = sp.innerHTML; 
//var str = "Your current operation: Modify &raquo; newone"; 
alert(str) 
var index = str.lastIndexOf("&raquo;"); 
alert(index); 

</script> 

</body> 
</html> 

上面的例子會彈出「索引」值-1。如果我取消註釋行「」您當前的操作:修改» newone「;」,結果將是30.

所以我認爲原因是因爲我使用「innerHTML」來獲取文本。還有什麼我可以使用範圍內的文本獲得正確的索引結果?

感謝

回答

2

不,它無關innerHTML。在對lastIndexOf的調用中,&raquo;實體沒有像在HTML代碼中一樣展開;相反,它被視爲原始字符串。與實際的字符替換它,它會工作:

var index = str.lastIndexOf("»"); 
+0

謝謝,它完美的作品 – user253762 2010-07-05 03:59:45

0

如果您使用innerHTML,你必須使用"»"而不是"&raquo;"

+0

謝謝,它完美的作品 – user253762 2010-07-05 04:00:34

相關問題