Я работаю над проектом, который занимается прогулкой по дереву DOM. Чтобы вставить некоторые теги span, чтобы выделить документ, иногда необходимо разделить текстовый узел:
var newTextNode = treeWalker.currentNode.splitText(charOffset);
Проблема в том, что когда я в следующий раз попытаюсь позвонить:
if (newTextNode.nodeValue == "")
{
//...
}
Этот вызов .nodeValue
приводит к ошибке JavaScript в IE9, которая просто говорит: Incorrect function.
Совершенно бесполезно, если не сказать больше. Думая, что происходит что-то странное, я открыл отладчик и выполнил: typeof newTextNode.nodeValue
, который возвращает "unknown"
.
Кто-нибудь может объяснить такое поведение? Я подумал, может быть, эта функция просто не применима к текстовым узлам, но в других сценариях она прекрасно работает. Только после звонка splitText
кажется, что его тошнит.
Я благодарю всех за помощь! Моего гугл-фу пока недостаточно.
ДОПОЛНЕНИЕ:
После просмотра объекта newTextNode есть больше свойств, которые оцениваются как «Неверная функция».
- данные
- длина
- nodeValue
- textContent
- весь текст