Html 如何将空白作为子节点计数?
在DOM中,空格计为空文本元素。 我如何计算这些空白 比如说Html 如何将空白作为子节点计数?,html,Html,在DOM中,空格计为空文本元素。 我如何计算这些空白 比如说 <body> <div> </div> <div> </div> </body> body元素中有多少空格(childNodes) 每个div元素中有多少空格(childNodes)?如果要查看有多少元素为空?然后我给你一个jQuery解决方案 bodyChild = $("body :empty").length;
<body>
<div>
</div>
<div>
</div>
</body>
body元素中有多少空格(childNodes)
每个div元素中有多少空格(childNodes)?如果要查看有多少元素为空?然后我给你一个jQuery解决方案
bodyChild = $("body :empty").length;
divHcild = $("#divid :empty").length;
使用它们,您可以知道一个元素中有多少元素是完全空的
更新: 要获取所有子元素,可以使用如下内容 正文:
您发布的代码有5个空格。我会向你解释这是为什么。首先,我想明确一点,当我提到WhiteSpace时,我所说的不仅仅是
“
字符。空白也可以是表示空节点的\t
、\r
或\n
字符。
话虽如此,我们可以讨论您发布的代码如何在DOM中表示:
body
|
x-- #Text = "\n\t"
|
x-- div
| |
| x-- #Text = "\n\t"
|
x-- #Text = "\n\t"
|
x-- div
| |
| x-- #Text = "\n\t"
|
x-- #Text = "\n"
您可以注意到,\n
和\t
位于同一文本节点中。这符合DOM级别2的规定,即:
当文档首次通过DOM可用时,每个文本块只有一个文本节点
因此,向下推压div
的分隔线与向右推压它的选项卡位于同一文本节点中。
我们可以进一步向div
s中的一个添加文本:
文本使用两个空白节点分组,因为所有内容都是文本,因此它们成为单个文本块。这是计算文档中空白的方法。
但我不会依靠我的眼睛,试图通过计算空格来查找或访问元素。相反,使用一些脚本在
childNodes
中循环,并检查的nodeType
。
您可以使用一些有用的函数来横切DOM,而不用担心空格。
好了,说够了。让我们看一些代码。要证明您发布的HTML有5个空格,请参阅此统计文档中所有文本节点的工作。
希望这有助于澄清一些问题。因为如果我不知道主体内有多少子节点,我如何访问主体内的元素(例如主体元素)。我不想使用innerHTML。如果不这样做,通过查看代码来计算有多少子节点???@user1394479,这就是访问这些元素的方式。使用
长度
和可能的for循环
我的原始问题。。那些空白怎么样???我读到它们也是childNodes,我想知道如何计算它们。headfirst css/html,为什么说空白也是childNodes是错误的?
body
|
x-- #Text = "\n\t"
|
x-- div
| |
| x-- #Text = "\n\t"
|
x-- #Text = "\n\t"
|
x-- div
| |
| x-- #Text = "\n\t"
|
x-- #Text = "\n"
<body>
<div>
</div>
<div>
Hello World!
</div>
</body>
body
|
x-- #Text = "\n\t"
|
x-- div
| |
| x-- #Text = "\n\t"
|
x-- #Text = "\n\t"
|
x-- div
| |
| x-- #Text = "\n\t Hello World! \n\t"
|
x-- #Text = "\n"