Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在文档中查找节点_Javascript_Html_Dom_Element - Fatal编程技术网

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的原型不匹配?您做了什么???它起作用了!