在评论之间获取内容

希望这个不太棘手……

我试图使用javascript(使用jQuery插件)获得注释之间的上下文。 结果必须排除注释。 在这种情况下,父级是一个表,但它可以是任何东西,如div

 
Name Number Type Account Manager

DIV

 
something something something

感谢Felix的想法

 function GetTemplate(root, name) { var output = ""; var record = false; function iterate(node) { var children = node.childNodes; for (var i = 0; i = 0; i--) { var child = children[i]; if (child.nodeType === 8 && child.nodeValue.trim() === name) { if (!record) { record = true; continue; } else { break; } } if (record) node.removeChild(child); else { if (child.hasChildNodes) iterate(child); } } } iterate(root); }; function InsertInto (root, name, items) { function iterate(node) { var children = node.childNodes; for (var i = 0; i = 0; n--) child.parentNode.insertBefore(items[n], child.nextSibling); break; } if (child.hasChildNodes) iterate(child); } } iterate(root); }; String.prototype.trim = function () { return this.replace(/^(\s| |\u00A0)+|(\s| |\u00A0)+$/g, ""); }; function outerHTML(node) { return node.outerHTML || (function (n) { var div = document.createElement('div'); div.appendChild(n.cloneNode(true)); return div.innerHTML; })(node); }; 

正则表达式和jQuery:想法是迭代所有子节点并检查节点是否是注释节点,如果是,则是否包含某个字符串,例如itemtemplate

 function extract(node, needle) { var children = node.childNodes, record = false, container = document.createDocumentFragment(); for(var i = 0, l = children.length; i < l; i++) { var child = children[i]; if(child.nodeType === 8 && child.nodeValue === needle) { record = !record; continue; } if(record) { container.appendChild(child.cloneNode(true)); } } return container; } 

用法:

 var nodes = extract(someParent, ' itemtemplate '); 

DEMO

我不知道这是否是适合您情况的最佳解决方案,您不会提供有关上下文的任何信息。

使用正则表达式解析XML数据(作为HTML的一种类型)必然会失败。 我建议你使用专门为解析XML而设计的工具。 在javascript中,DOMParser可以用于此。

链接到w3schools使用它。

你可以试试这个

 var result = '
something something
something
'
.split(//)

结果[1]将具有您想要的所需文本。