Javascript 在文档中查找节点
我通过Javascript 在文档中查找节点,javascript,html,dom,element,Javascript,Html,Dom,Element,我通过document.getSelection().anchorNode获得了一个节点,我希望将其视为一个元素,就像它是由查询选择器获取的一样。 假设我的节点是一个p元素,包含字符串hello world <p>hello world</p> 你好,世界 节点出现在DOM中的以下位置: <!doctype html> <html> <head> <link rel="stylesheet" href=
document.getSelection().anchorNode
获得了一个节点,我希望将其视为一个元素,就像它是由查询选择器获取的一样。
假设我的节点是一个p
元素,包含字符串hello world
<p>hello world</p>
你好,世界
节点出现在DOM中的以下位置:
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="/master.css" />
</head>
<body>
<p>hello world</p>
</body>
</html>
你好,世界
我想从文档中获取
元素。但是,一个看起来相同的节点可能会出现好几次,我想得到这个节点来自的HTML元素
谢谢
假设我的节点是一个p
元素,包含字符串helloworld
然后,anchorNode
将与您从querySelector
获得的对象完全相同
但是,如果它是p
元素中的文本节点,则需要使用anchorNode.parentElement
访问p
元素
实例:
var lastNode=null;
setInterval(函数(){
var selection=window.getSelection();
var节点=(selection&&selection.anchorNode)| | null;
如果(节点===lastNode){
返回;
}
lastNode=节点;
如果(!节点){
console.log(“(无选择)”);
}否则{
var result=“节点名称为”+Node.nodeName;
如果(node.nodeType==3){//Text
日志(结果,“父元素:”,节点.parentElement);
}否则{
控制台日志(结果);
}
}
}, 250);代码>
选择一些文本,控制台中将显示对window.getSelection().anchorNode
结果的分析。
hello world
您所说的“我想将其视为一个元素,就好像它是由查询选择器获取的”是什么意思?如果节点是示例中的p
元素,那么它与从querySelector
文档.getSelection().anchorNode instanceof HTMLElement==false
中获得的对象完全相同,那么它就不是p
元素。它可能是其中的一个文本节点。那么为什么父节点的原型与HtmleElement的原型不匹配?您做了什么???它起作用了!