javascript string.lastIndexOf不适用于span innerHTML

时间:2010-07-02 05:05:41

标签: javascript 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>

上面的例子将弹出“index”值-1。如果我取消注释“”你当前的操作:修改»newone“;”,结果将是30。

所以我认为原因是因为我使用“innerHTML”来获取文本。还有什么我可以在span中使用get文本并获得正确的索引结果?

由于

2 个答案:

答案 0 :(得分:2)

不,它与innerHTML无关。在对lastIndexOf的调用中,&raquo;实体未按HTML代码扩展;相反,它被视为原始字符串。将其替换为实际角色,它将起作用:

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

答案 1 :(得分:0)

如果您使用innerHTML,则必须使用"»"代替"&raquo;"