【发布时间】:2013-06-22 22:05:40
【问题描述】:
使用 Ajax 获取 XML 数据。关于空白文本节点的问题
我在这里阅读了这个问题/答案 Javascript/XML - Getting the node name
这帮助我了解了很多关于结构是如何设置的但是我仍然有一两个问题......当他提到这部分时:
“带有回车和一些空格或制表符的文本节点”
您将如何测试以查看是否获得了这样的空文本节点?我试过测试看看:
if nodeValue == null
nodeValue == "null"
nodeValue == ""
nodeValue == " "
这些似乎都不起作用
我认为长度可能是 0,所以我测试了 .length,它返回 5(1 个返回键和 4 个标签。在其中添加了一个额外的标签并再次测试它返回 6)
然后我用谷歌搜索了如何删除空格并使用了这些:
.replace(/\s+/g, ' ');
.replace(/^\s+|\s+$/g, '');
都没有工作,仍然说 .length 仍然是 5
我想对此进行测试的原因是,如果我事先不知道每个元素节点名称或不知道 DOM 的确切设置方式。
或者有没有更好的导航方式而无需检查文本节点是否只是制表符/空格/返回键?
【问题讨论】:
-
if (!nodeValue.trim().length)应该足够了 -
@Xotic750:直到最近才在
String.prototype上没有trim,所以依赖它可能会有问题。 IE8有吗? (我手边没有测试机……) -
if ( ! nodeValue.replace(/(\r\n|\n|\r|\s|\t)/gm,"").length )
标签: javascript xml dom