InnerHTML без html, просто текст
Я создал ссылку электронной почты, которая автоматически заполняет необходимую информацию в теле. Но, когда я делаю .innerHTML, я получаю немного больше, чем я рассчитывал.
Я хочу "Март, 2012: 12-16"
Что я получаю <B>March, 2012</B>: <FONT color=blue>12</FONT> - <FONT color=blue>16</FONT>
Есть ли способ получить innerHTML без тэгов html?
.value = undefined
.text = undefined
Ответы
Ответ 1
Вы хотите .textContent
во всех, кроме старого IE, и .innerText
в IE (< 9).
Итак, попробуйте:
string = (node.textContent===undefined) ? node.innerText : node.textContent;
РЕДАКТИРОВАТЬ: Или просто используйте GGG намного чище string = (node.innerText || node.textContent)
, так как undefined
является ложным.
Ответ 2
В браузере, поддерживающем стандарт, вы можете использовать textContent
вместо innerHTML
. В противном случае вы можете перемещаться по следующим узлам и конкатенировать их или использовать библиотеку jQuery, которая абстрагирует этот подход для вас.
Ответ 3
Если вы уже используете jQuery, вы можете использовать .text():
http://jsfiddle.net/vkgYR/
если вы его не используете, вы должны просто пойти с другими комментариями, так как было бы глупо загружать все jQuery только для метода .text()