Этот вопрос уже имеет ответы здесь :
Закрытый 6 лет назад .
Я услышал то использование el.innerText||el.textContent
может привести к ненадежным результатам, и вот почему я всегда настаивал на том, чтобы использовать следующую функцию в прошлом:
function getText(node) {
if (node.nodeType === 3) {
return node.data;
}
var txt = '';
if (node = node.firstChild) do {
txt += getText(node);
} while (node = node.nextSibling);
return txt;
}
Эта функция проходит все узлы в элементе и собирает текст всех текстовых узлов и текст в потомках:
Например.
foo foo... foo
Результат:
getText(document.getElementById('x')); // => "foo foo... foo"
Я совершенно уверен , что существуют проблемы с использованием innerText
и textContent
, но я не смог найти категорический список где угодно, и я начинаю задаваться вопросом, является ли это просто слух .
Кто-либо может предложить информацию о возможно недостающей надежности textContent/innerText?
Править: Найденный этим большим ответом Kangax - 'innerText' работает в IE, но не в Firefox