Почему эта ссылка на #Text htmLelement на родительский узел иногда возвращает NULLJavascript

Форум по Javascript
Ответить
Anonymous
 Почему эта ссылка на #Text htmLelement на родительский узел иногда возвращает NULL

Сообщение Anonymous »

Я получаю сфокусированный целевой элемент с помощью API выбора следующим образом

Код: Выделить всё

const target = window.getSelection()?.focusNode;
А когда focusNode — это #text HTMLElement, я хотел бы получить родительский узел #text Node, выполнив следующие действия:

Код: Выделить всё

console.log((target as HTMLElement));
console.log((target as HTMLElement).parentNode as HTMLElement);
((target as HTMLElement).parentNode as HTMLElement)?.append(
rows
);
((target as HTMLElement).parentNode as HTMLElement)?.append(
''
);
(((target as HTMLElement).parentNode as HTMLElement)?.childNodes[
((target as HTMLElement).parentNode as HTMLElement)?.childNodes.length - 1
] as HTMLElement).innerHTML = '';
Это всегда работает в Chrome, но работает в Mozilla и иногда не работает на той линии, где я хочу получить родительский узел.

Код: Выделить всё

((target as HTMLElement).parentNode as HTMLElement) returns null
Я пытался запустить их с помощью функции setInterval ниже, но она все равно не работает.

Код: Выделить всё

let counter = 0;
const tt = setInterval(() => {
const
t1 = (target as HTMLElement),
t2 = ((target as HTMLElement).parentNode as HTMLElement)
;
if(t1 !== null && t2 !== null) {
((target as HTMLElement).parentNode as HTMLElement)?.append(
rows
);
((target as HTMLElement).parentNode as HTMLElement)?.append(
''
);
(((target as HTMLElement).parentNode as HTMLElement)?.childNodes[
((target as HTMLElement).parentNode as HTMLElement)?.childNodes.length - 1
] as HTMLElement).innerHTML = '';
clearInterval(tt);
}
else {
if(counter > 30) {
clearInterval(tt);
}
}
counter++;
}, 1);
Пожалуйста, мне нужна помощь в том, как решить эту проблему таким образом, чтобы, пока #text HTMLElement не имеет значения NULL или неопределенен, его родительский узел никогда не должен иметь значение NULL или неопределенный.

Подробнее здесь: https://stackoverflow.com/questions/793 ... eturn-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»