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