Javascript &引用;“无价值”;文本节点的属性为空-如何测试它?

Javascript &引用;“无价值”;文本节点的属性为空-如何测试它?,javascript,nodes,textnode,nodevalue,Javascript,Nodes,Textnode,Nodevalue,假设我有一个非常基本的页面,有一个主体,一个div,还有一个段落元素,里面有一些文本 <body> <div> <p>some text</p> <div> </body> 干杯, Alex只留下空白,看看还有什么剩余: if( body.childNodes[0].nodeValue.trim() ) { // more than white space } else { // just

假设我有一个非常基本的页面,有一个主体,一个div,还有一个段落元素,里面有一些文本

<body>
  <div>
    <p>some text</p>
  <div>
</body>
干杯, Alex

只留下空白,看看还有什么剩余:

if( body.childNodes[0].nodeValue.trim() ) {
    // more than white space
} else {
    // just white space
}
如果只有空白,那么最终将得到一个错误的值。否则它将是真实的

“文档”链接提供以下兼容性垫片:

if (!String.prototype.trim) {
    String.prototype.trim = function () {
        return this.replace(/^\s+|\s+$/g, '');
    };
}
只留下空白,看看还有什么剩下的:

if( body.childNodes[0].nodeValue.trim() ) {
    // more than white space
} else {
    // just white space
}
如果只有空白,那么最终将得到一个错误的值。否则它将是真实的

“文档”链接提供以下兼容性垫片:

if (!String.prototype.trim) {
    String.prototype.trim = function () {
        return this.replace(/^\s+|\s+$/g, '');
    };
}

您可以使用正则表达式,例如:

var re = /\S/; // Match non-whitespace
if (node.nodeType == 3 && re.test(node.nodeValue)) {
  // text node has something other than whitespace
}

注意到浏览器在考虑空白时的细微差别,并且与<>代码> 匹配,但在这里可能并不重要。 可以使用正则表达式,例如:

var re = /\S/; // Match non-whitespace
if (node.nodeType == 3 && re.test(node.nodeValue)) {
  // text node has something other than whitespace
}

注意到浏览器在考虑空白时的细微差别,并且与<>代码> 匹配,但在这里可能并不重要。 访问正文的最快方式是作为文档的正文属性,即。访问正文的最快方式是作为文档的正文属性,即。