【问题标题】:innerHTML without the html, just text [duplicate]没有html的innerHTML,只是文本[重复]
【发布时间】:2012-04-01 09:31:14
【问题描述】:

我创建了一个电子邮件链接,它会自动在正文中填充必要的信息。但是,当我使用 .innerHTML 时,我得到的比我预想的要多一些。

我想要“2012 年 3 月:12-16”

我得到了什么<B>March, 2012</B>: <FONT color=blue>12</FONT> - <FONT color=blue>16</FONT>

有没有办法在没有html标签的情况下获取innerHTML?

.value = undefined
.text = undefined

【问题讨论】:

标签: javascript html innerhtml


【解决方案1】:

除了较旧的 IE 之外,您希望 .textContent 和 IE 中的 .innerText (

那么,试试吧:

string = (node.textContent===undefined) ? node.innerText : node.textContent;

编辑:或者,只使用 GGG 的更干净的string = (node.innerText || node.textContent),因为undefined 是虚假的。

【讨论】:

【解决方案2】:

在支持该标准的浏览器中,可以使用textContent代替innerHTML。否则,您可以遍历下一个节点并将它们连接起来,或者使用像 jQuery 这样为您抽象这种方法的库。

【讨论】:

  • 该公司使用的是旧版本的 IE,并且 textContent 返回未定义。 innerText 工作正常。我有什么理由不应该使用 innerText?
  • innerText 不完全是 textContent。如果您必须在仅限 IE 的环境中工作,那很好,我认为使用它没有任何害处——它只是不标准。这里是参考:msdn.microsoft.com/en-us/library/ms533899(v=vs.85).aspx
【解决方案3】:

如果你已经在使用 jQuery,你可以使用 .text():

http://jsfiddle.net/vkgYR/

如果你不使用它,你应该只使用其他 cmets,因为只为 .text() 方法加载所有 jQuery 会很愚蠢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 2019-07-29
    • 2016-12-14
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多