javascript string.lastIndexOf не работает с span innerHTML - PullRequest
0 голосов
/ 02 июля 2010

посмотрите на приведенный ниже пример.

<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 ", чтобы получить текст. Что ещеМогу ли я использовать получить текст внутри диапазона и получить правильный индексный результат?

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 июля 2010

Нет, это не имеет ничего общего с innerHTML. При вызове lastIndexOf сущность &raquo; не раскрывается, как в HTML-коде; вместо этого он рассматривается как необработанная строка. Замените его реальным символом, и он будет работать:

var index = str.lastIndexOf("»");
0 голосов
/ 02 июля 2010

Если вы используете innerHTML, вы должны использовать "»" вместо "&raquo;".

...