假设您想要获取节点A的innerHTML,但是您想要排除节点B,即节点A的后代的文本节点。您对节点B的引用存储在变量中,而您不是想要从页面中删除节点B.您还事先不知道节点A中的其他内容,因此使用正则表达式从文本节点中删除文本可能会导致意外后果(如果其他地方存在相同的文本)。有没有办法在不修改页面的情况下执行此操作,如果有,怎么做?
答案 0 :(得分:1)
您可以克隆A
节点,从中删除B
节点,从而获得其innerHTML
var A_clone = A.cloneNode();
A_clone.removeChild(B);
/* B has to be evaluated from the cloned node or - if previously
* evaluated - it will be a reference of the original A node
*/
console.log(A_clone.innerHTML);
答案 1 :(得分:0)
它不会很快,但你可以:
答案 2 :(得分:0)
你也可以使用XMLSerializer对象,序列化a和b,最后用“”替换b中的b匹配