看下面的例子。
<html>
<body>
<form>
<span id="spTest">Your current operation: Modify » newone</span>
</form>
<script type="text/javascript">
var sp = document.getElementById("spTest");
var str = sp.innerHTML;
//var str = "Your current operation: Modify » newone";
alert(str)
var index = str.lastIndexOf("»");
alert(index);
</script>
</body>
</html>
上面的例子将弹出“index”值-1。如果我取消注释“”你当前的操作:修改»newone“;”,结果将是30。
所以我认为原因是因为我使用“innerHTML”来获取文本。还有什么我可以在span中使用get文本并获得正确的索引结果?
由于
答案 0 :(得分:2)
不,它与innerHTML
无关。在对lastIndexOf
的调用中,»
实体未按HTML代码扩展;相反,它被视为原始字符串。将其替换为实际角色,它将起作用:
var index = str.lastIndexOf("»");
答案 1 :(得分:0)
如果您使用innerHTML,则必须使用"»"
代替"»"
。