Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么html元素的innerText属性只显示body元素的innerText?_Javascript_Html_Ecmascript 6_Ecmascript 5 - Fatal编程技术网

Javascript 为什么html元素的innerText属性只显示body元素的innerText?

Javascript 为什么html元素的innerText属性只显示body元素的innerText?,javascript,html,ecmascript-6,ecmascript-5,Javascript,Html,Ecmascript 6,Ecmascript 5,console.log(document.getElementsByTagName('html')['0'].textContent); log(document.getElementsByTagName('html')['0'].innerText) 文件 段落的结尾 下面的代码按照预期的行为工作。我想你会对他们感到困惑。看看这里 其中两个: 虽然textContent获取所有元素的内容,包括和元素,但innerText不会,只显示人类可读的元素 innerText知道样式设置,不会返回隐藏

console.log(document.getElementsByTagName('html')['0'].textContent);
log(document.getElementsByTagName('html')['0'].innerText)

文件
段落的结尾


下面的代码按照预期的行为工作。我想你会对他们感到困惑。看看这里

其中两个:

  • 虽然
    textContent
    获取所有元素的内容,包括
    元素,但
    innerText
    不会,只显示人类可读的元素

  • innerText
    知道样式设置,不会返回隐藏元素的文本,而
    textContent
    会返回

  • 要删除空白和新行,可以使用regex replace。

    //用replace删除新行和空白
    console.log(document.getElementsByTagName('html')['0'].textContent.replace(/[\n\r]+\s]{2,}/g')
    
    
    文件
    段落的结尾

    根据:

    节点。innerText是一个属性,表示节点及其子体的“渲染”文本内容。作为一个getter,如果用户用光标突出显示元素的内容,然后将其复制到剪贴板,则它近似于用户将获得的文本

    元素的内容不会呈现为文本内容,当然也不能突出显示或复制到剪贴板。因此,
    Node.innerText
    不会返回它

    有趣的是,
    document.getElementsByTagName('title')['0'].innerText
    确实返回
    元素的内容。我读了一些这方面的内容,它是:

    如果未呈现此元素,或者用户代理是非CSS用户代理,则返回与此元素上的textContent IDL属性相同的值

    此步骤可能会产生令人惊讶的结果,例如,当对未呈现的元素访问innerText属性时,将返回其文本内容,但当对正在呈现的元素访问时,将忽略其所有未呈现的子元素的文本内容


    @user9218974,主体下的每一个东西,假设都呈现为一个网页,头部包含的任何内容都只是呈现的信息和资源

    因此,在这里,你的代码头中包含了
    meta
    title
    ,它们只是页面的信息/元数据。因此,您或多或少可以说您的工作区域是
    正文
    中的内容


    现在,如果您想要
    标题的文本
    ,您需要使用“document.title”

    它不会显示在网页
    控制台.log(getComputedStyle(document.querySelector('title')).display)的内容区域中
    ,并且不要忘记
    .innerText
    不是W3C标准,而是WHATWG标准。