当前位置: 代码迷 >> JavaScript >> javascript string.lastIndexOf不适用于span innerHTML
  详细解决方案

javascript string.lastIndexOf不适用于span innerHTML

热度:45   发布时间:2023-06-05 09:39:24.0

看下面的例子。

<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”来获取文本。 我还能使用span范围内的get text并获得正确的索引结果吗?

谢谢

不,它与innerHTML没有关系。 在对lastIndexOf的调用中, &raquo; 实体未按HTML代码中的方式展开; 而是将其视为原始字符串。 将其替换为实际字符,它将起作用:

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

如果您使用innerHTML,则必须使用"?"而不是"&raquo;"

  相关解决方案