jquery-删除IE';s";“空文本节点”;

jquery-删除IE';s";“空文本节点”;,jquery,internet-explorer,Jquery,Internet Explorer,我有一个问题,即我的tr中有大量的“空文本节点”。如果我跑 $('#myTr').children().length 及 我得到了相同的值,这意味着这些节点不向jquery注册。:empty选择器返回时没有任何内容 最重要的是,如果我从IE调试器中手动删除这些节点,我的格式会改变,因此其中会有一些内容 以下是我在IE调试器(IE 8,顺便说一句)中看到的内容: 有什么想法吗?这让我们抓狂。HTML与空白无关,所以有空文本节点应该无关紧要。我怀疑您有一个稍微不同的问题,这个问题恰好是通过删除文

我有一个问题,即我的
tr
中有大量的“空文本节点”。如果我跑

$('#myTr').children().length

我得到了相同的值,这意味着这些节点不向jquery注册。
:empty
选择器返回时没有任何内容

最重要的是,如果我从IE调试器中手动删除这些节点,我的格式会改变,因此其中会有一些内容

以下是我在IE调试器(IE 8,顺便说一句)中看到的内容:


有什么想法吗?这让我们抓狂。

HTML与空白无关,所以有空文本节点应该无关紧要。我怀疑您有一个稍微不同的问题,这个问题恰好是通过删除文本节点来解决的

例如,手动删除文本节点可能会强制对文档进行回流或重新绘制,从而纠正渲染错误。或者可能会弄乱父级上调试器触发器中的节点(推测)。

在这里找到了答案:

IE9中有一个bug导致了我的问题:


空文本节点有什么问题?也就是说,为什么他们会打扰你和/或干扰你的目标?我在那里会得到奇怪的格式(间歇性!)。如果文本节点出现问题,您甚至可以将tr的字体大小设置为0px,然后将其设置为tds的正常字体大小。我在使用display:inline块设置样式的元素上使用此选项。(当然,如果您使用的是固定字体大小),则不能使用
$()
选择文本节点。你可以做
$('#myTr').contents().length
我喜欢没有评论的否决票..不完全正确。例如,在CSS3中,pseudoselector:empty也考虑空文本节点。
$('#myTr').find('td').length