【问题标题】:Difference between text and textContent propertiestext 和 textContent 属性之间的区别
【发布时间】:2020-03-16 20:43:03
【问题描述】:

根据HTML5 specificationDOM specificationHTMLAnchorElement 具有texttextContent 属性。 text 属性的用途是什么?据我所知text 只是textContent 的只读getter

【问题讨论】:

    标签: javascript dom anchor


    【解决方案1】:

    textContent 属性“继承”自 DOM 核心规范的 Node interfacetext 属性“继承”自 HTML5 HTMLAnchorElement interface,并指定为“必须返回与 textContent IDL 属性相同的值”。

    这两者可能被保留以收敛不同的浏览器行为,text property for script elements 的定义略有不同。

    请注意,DOM 规范是针对任何类型文档(例如 HTML、XML、SGML 等)的通用规范,而 HTML5 专门针对在许多方面利用和扩展 DOM 核心的 HTML(有些人可能会说它是一些 DOM 规范加上 HTML 加上……的“超级集合”。

    请注意,“继承”并不意味着“原型继承”,只是继承的更一般的含义。

    【讨论】:

    • text有什么目的吗?由于 HTML 是 DOM 核心的扩展,我无法想象任何场景可以使用 text 而不是 textContent
    • 在 DOM 2 HTML 中,只有 4 个元素有一个 text 属性并且它做了不同的事情(例如,body 是文档文本颜色,title 是标题文本,还有 @ 987654328@ 和 script)。但支持不一致,HTML5 似乎试图将文本与 textContent 融合。它与“浏览器实际做什么”和“它们应该做什么”一样重要。
    • 如果texttextContent 相同,那么我会使用text,因为它更短。
    • 我在 IE11 中使用 XML DOM,它似乎只有一个 textContent 属性,没有 text 属性。所以为了在 XML DOM 和 HTML DOM 之间保持一致,总是使用 textContent 似乎是有意义的。
    • 在带有foo<space><space><space>bar 之类的选项的列表中,list.options[i].tex 返回foo<space>bar,list.options[i].textContent 返回foo<space><space><space>bar。不幸的是,它看起来像 .text 只是没有给我一个带有多个空格的字符串。 => 代表空格
    【解决方案2】:

    我建议使用textContent 上的MDNW3C quirksmode.org

    您从DOM Standard 引用的text 属性指的是Text Web API

    【讨论】:

      猜你喜欢
      • 2016-05-14
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 2016-09-17
      • 2014-10-09
      • 1970-01-01
      • 2012-10-03
      相关资源
      最近更新 更多