,这种就需要异常处理
if (currentParent._tagName === tagName) {
// debugger
// 更新 range,之前处理开标签算出的 range 是不包含闭标签的
currentParent._range[1] = createRange(-1, Math.max(lastTextPos, tagEndPos))[1];
// 将处理完的开闭标签踢出
stack.pop();
// 将 stack 的最后一个节点赋值给 currentParent
currentParent = arrBack(stack);
} else {
//
,异常直接从栈中踢出,不更新 range
stack.pop();
currentParent = arrBack(stack);
}
}
}
// 通过处理,将 stack 返回就是最终的结果
// debugger
return stack;
}