Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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获取不带jQuery的X父节点_Javascript_Dom_Element_Nodelist_Parent Node - Fatal编程技术网

Javascript获取不带jQuery的X父节点

Javascript获取不带jQuery的X父节点,javascript,dom,element,nodelist,parent-node,Javascript,Dom,Element,Nodelist,Parent Node,我只是在浏览器中使用“Javascript:;”手动从一些网站抓取数据 地址栏。这比复制/粘贴容易 我遇到了一些必须执行的实例:object.parentNode.parentNode。。。。 为了获得一些信息,由于各个站点的信息不同,因此可以是任何级别的信息 显然,我不想要一个循环并遍历它,因为这会使一个简单的任务变得更加简单 广泛的 有没有一种方法可以做到:object.parentNode[4]或类似于没有jQuery的东西?我认为您无法避免一个好的ol'循环: for(var i=0;

我只是在浏览器中使用“Javascript:;”手动从一些网站抓取数据 地址栏。这比复制/粘贴容易

我遇到了一些必须执行的实例:object.parentNode.parentNode。。。。 为了获得一些信息,由于各个站点的信息不同,因此可以是任何级别的信息

显然,我不想要一个循环并遍历它,因为这会使一个简单的任务变得更加简单 广泛的


有没有一种方法可以做到:object.parentNode[4]或类似于没有jQuery的东西?

我认为您无法避免一个好的ol'循环:

for(var i=0; i<4 && node.parentNode; node=node.parentNode, i++); alert(node);

for(var i=0;i我认为您无法避免一个好的ol'循环:

for(var i=0; i<4 && node.parentNode; node=node.parentNode, i++); alert(node);

for(var i=0;i我编写了一个函数,用普通JavaScript实现这一点:

以下是es5版本:

或者,如果您只需要支持现代浏览器,则可以使用es6版本:

你这样称呼它:

queryParent(选择器,父级);

它将返回原始JavaScript节点

下面是一个演示,它获得了您想要的确切的类选择器,即使还有另一个元素具有相同的选择器(您不想要):

ryanpcmcquen编写的queryParent.js v1.2.1*/ /*全局模块*/ /*jshint版本:6*/ const d=文件; 常量qu='querySelector'; 常量queryParent=(s,p)=>{ 常数q=(x)=>d[qu](x); 常量qa=(y)=>d[`${qu}All`](y); 常数pa=qa(p); (typeof s==='string')&&(s=q(s)); 返回[…pa]。筛选器((n)=>{ 返回(n.contains)?n:false; }).pop(); }; //module.exports=queryParent; console.log( queryParent('.bar'、'.foo') ); //嘘!检查控制台!

    但是这里也有一个我们不想要的
    foo
    我们想要的
    foo
    在这里。
                                  • bar
                                    在这里。

                              我编写了一个函数,在Vanilla JavaScript中实现了这一点:

                              以下是es5版本:

                              或者,如果您只需要支持现代浏览器,则可以使用es6版本:

                              你这样称呼它:

                              queryParent(选择器,父级);

                              它将返回原始JavaScript节点

                              下面是一个演示,它获得了您想要的确切的类选择器,即使还有另一个元素具有相同的选择器(您不想要):

                              ryanpcmcquen编写的queryParent.js v1.2.1*/ /*全局模块*/ /*jshint版本:6*/ const d=文件; 常量qu='querySelector'; 常量queryParent=(s,p)=>{ 常数q=(x)=>d[qu](x); 常量qa=(y)=>d[`${qu}All`](y); 常数pa=qa(p); (typeof s==='string')&&(s=q(s)); 返回[…pa]。筛选器((n)=>{ 返回(n.contains)?n:false; }).pop(); }; //module.exports=queryParent; console.log( queryParent('.bar'、'.foo') ); //嘘!检查控制台!
                              
                              
                                但是这里也有一个我们不想要的
                                foo
                                我们想要的
                                foo
                                在这里。
                                                              • bar
                                                                在这里。

                                                          唉,我想你是对的。谷歌帮不了什么忙,认为他们的方法可能不是IE中的标准方法(因为它非常兼容:-)。你可以看看
                                                          document.querySelector()
                                                          ,也许你可以直接匹配父节点,而无需访问父节点。唉,我认为你是对的。谷歌帮不了什么忙,认为他们的方法可能不是IE中的标准方法(因为它非常兼容:-)。你可以看看
                                                          document.querySelector()
                                                          ,也许您可以直接匹配父节点,而无需转到父节点。