首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Xpath 2.0中的当前节点获取父级父级

节点可以使用 Xpath 2.0 中的 ancestor 函数。该函数接收一个节点作为参数,并返回该节点的所有祖先节点。因此,要获取当前节点的父级父级节点,可以编写以下代码:

代码语言:php
复制
// 定义一个 ancestor 函数
function ancestor(node) {
  while (node) {
    if (node.tagName === 'XMPPElement') {
      return node;
    }
    node = node.parentNode;
  }
  return null;
}

// 获取当前节点的父级父级节点
var parent_node = ancestor(document.documentElement);

// 打印父级父级节点的名称
console.log(parent_node.tagName);

上述代码中,ancestor 函数遍历当前节点的所有祖先节点,直到找到 XMPPElement 类型的节点为止。然后,它返回该节点。最后,我们使用 parent_node 变量来获取当前节点的父级父级节点,并打印其名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JS获取节点兄弟,,子元素方法

2015-08-18 03:48:27 下面介绍JQUERY,子,兄弟节点查找方法 jQuery.parent(expr)  找父亲节点,可以传入expr进行过滤,比如$("span").parent...()或者$("span").parent(".class") jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于元素 jQuery.children...(expr).返回所有子节点,这个方法只会返回直接孩子节点,不会返回所有的子孙节点 jQuery.contents(),返回下面的所有内容,包括节点和文本。...(),返回所有之前兄弟节点 jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点 jQuery.nextAll(),返回所有之后兄弟节点 jQuery.siblings(),返回兄弟姐妹节点...jQuery.filter()是初始jQuery对象集合中筛选出一部分,而jQuery.find()返回结果,不会有初始集合中内容,比如$("p"),find("span"),是元素开始找

9.1K10

JS和JQuery获取当前元素兄弟及等元素方法

) jQuery.parents(expr),类似于 jQuery.parents(expr) ,但是是查找所有祖先元素,不限于元素 jQuery.children(expr),返回所有子节点,这个方法只会返回直接孩子节点...(),返回兄弟姐妹节点,不分前后 jQuery.find(expr),跟 jQuery.filter(expr) 完全不一样: jQuery.filter(),是初始 jQuery 对象集合中筛选出一部分...,而 jQuery.find(),返回结果,不会有初始集合中内容,比如 $("p").find("span") ,是 元素开始找 ,等同于 $("p span") JS获取:...var chils= s.childNodes;  //得到s全部子节点 var par=s.parentNode;   //得到s节点 var ns=s.nextSibling;   //获得...;   //获得s最后一个子节点 JS获取节点,子元素:JS方法会比JQUERY麻烦很多,主要则是因为FF、谷歌浏览器会把你换行也当作DOM元素:空text元素,目前IE也是这样 <div

12.4K10

利用个小bug判断typecho当前分类页面是还是子

bug描述 分类A是一个分类,a1,a2,a3都是A子分类,并且发布文章只勾选子分类。 那么在分类A文章列表页面下,使用category; ?...>输出分类缩略名,它不会输出A缩略名,反而会输出a1,a2,a3某个分类缩略名。 然后joyqi告诉我用getArchiveSlug(); ?>输出缩略名来解决这个问题。...分类页面子分类判断 然后我突发奇想,可以用这个判断分类页面是还是子呀?我太天才了!!!...category; $b = $this->getArchiveSlug(); if($a==$b){echo '子分类页面';}else{echo '分类页面';} ?...> 用途 可以用来分别设置子分类分类样式,还可以根据分类级别不同输出不同内容,总之用起来很爽就对了!!!

50610

准确获取事件源任意元素(事件委托)

事件委托特殊用法 问题回顾 当我们想给一个列表中每个列表项添加相同事件时,我相信最先想到方法一定是事件委托,通过将事件监听器设置在其父节点上,利用事件冒泡原理实现想要操作,这样只进行了一次...通常我们都会使用事件源e.target来获取点击元素,从而可以知道我们点击是谁。...li了,从而导致我们获取不到id无从下手 解决方法 下面我通过另一种方法很好解决了这个问题 在我们事件对象event中,存在着一个方法path,这个方法可以返回事件触发所有元素,我们可以使用这个方法...,整个方法核心就是通过获取到触发事件元素所有元素集合,再通过筛选从而获得元素!...,因此我们可以通过事件对象下path方法以及数组中find方法选择出我们所要列表项节点

2.5K30

Vue如何在下使用v-slot

关于作用域插槽v-slot用法可以先看看文档 https://cn.vuejs.org/v2/guide/components-slots.html#%E4%BD%9C%E7%94%A8%E5%...9F%9F%E6%8F%92%E6%A7%BD 现在我们进入正题 我们用到一个第三方组件validate,这个第三方组件插槽传了一个属性error值给我们,我们现在想要在中获得这个error值,...我们觉得可以在v-slot下使用一个方法,把error传到去,不就行了吗,的确是可以: https://jsfiddle.net/jswenjie/pxru6y2m/5/ 问题出现 我们页面有多个...validate情况下,需要搜集所有的error,那么我们可以用个数组:https://jsfiddle.net/jswenjie/pxru6y2m/7/ 我们发现虽然结果是正确,不过在控制台下出现了...有死循环问题。 问题解决 为了解决这个问题,我考虑到是否可以用一个组件把 和子集关联起来呢,相当于给他们搭建一个桥梁,结果证明是可以,就是略显繁琐,不知道大家有没有更好方法呢?

1.5K20

RoslynMSBuild 在编译期间当前文件开始查找文件夹,直到找到包含特定文件文件夹

大家在进行各种开发时候,往往都不是写一个单纯项目就完了,通常都会有一个解决方案,里面包含了多个项目甚至是大量项目。...我们经常会考虑输出一些文件或者处理一些文件,例如主项目的输出目录一般会选在仓库根目录,文档文件夹一般会选在仓库根目录。 然而,我们希望输出到这些目录或者读取这些目录项目往往在很深代码文件夹中。...---- 现在,我们有了一个好用 API:GetDirectoryNameOfFileAbove,可以直接找到仓库根目录,无需再用数不清又容易改出问题 ..\..\.. 了。...你只需要编写这样代码,即可查找 Walterlv.DemoSolution.sln 文件所在文件夹完全路径了。...需要注意是: 此方法不支持通配符,也就是说不能使用 *.sln 来找路径 此方法不支持通过文件夹去找,也就是说不能使用我们熟知 .git 等等文件夹去找路径 此方法传入文件支持使用路径,也就是说可以使用类似于

18740

System.InvalidOperationException:“寄宿 HWND 必须是指定子窗口。”

当试图在 WPF 窗口中嵌套显示 Win32 子窗口时候,你有可能出现错误:“寄宿 HWND 必须是指定子窗口。”。 这是很典型 Win32 错误,本文介绍如何修复此错误。...---- 我们在 MainWindow 中嵌入一个其他窗口来承载新 WPF 控件。...一般情况下我们当然不会这么去做,但是如果我们要跨越进程边界来完成 WPF 渲染内容融合时候,就需要嵌入一个新窗口了。...由于窗口句柄是可以跨越进程边界传递,所以这样方式可以完成跨进程 WPF 控件显示。...问题 你有可能在调试嵌入窗口代码时候遇到错误: System.InvalidOperationException:“寄宿 HWND 必须是指定子窗口。”

19430
领券