问题描述
看下面的例子。
<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>
上面的示例将弹出“索引”值-1。 如果取消注释“您的当前操作:修改?newone”;行,则结果将为30。
因此,我认为原因是因为我使用“ innerHTML”来获取文本。 我还能使用span范围内的get text并获得正确的索引结果吗?
谢谢
1楼
casablanca
2
已采纳
2010-07-02 05:10:31
不,它与innerHTML
没有关系。
在对lastIndexOf
的调用中, »
实体未按HTML代码中的方式展开;
而是将其视为原始字符串。
将其替换为实际字符,它将起作用:
var index = str.lastIndexOf("?");
2楼
Fopfong
0
2010-07-02 05:13:07
如果您使用innerHTML,则必须使用"?"
而不是"»"
。