废话不说了,功能函数如下

/** @Author : Jeen @ vsfor.com* @Describe : 根据节点名称,查找某节点的特定父节点* @params :*       node  dom节点*       pname   父节点名称 parentNode.nodeName*       level   可选参数,层级,默认为1层* @example :* <div id="a"><div id="b"><div id="c"><div id="d"><a href="#" id="nodeA">Node</a></div></div></div></div>* 假定nodeA表示其中的 a 节点,则 getParentNode(nodeA,'div',3); 返回的是 id 为 b 的 div节点*/function getParentNode(node,pname){level = arguments[2] ? (arguments[2]-1) : 0;if(node.nodeName == 'BODY') return node;var tnode = node.parentNode;pname = pname.toUpperCase();while(tnode.nodeName != pname && tnode.nodeName != 'BODY'){tnode = tnode.parentNode;}if(level === 0){return tnode;}else{return getParentNode(tnode,pname,level);}
}

顺便附上测试代码和效果图吧:

<!DOCTYPE html>
<html>
<head>
<title>parentNode测试</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body id="10" style="padding-bottom:300px;">
<h2>定位目标元素的 特定 父 元素</h2>
<div id="a"><div id="b"><div id="c"><div id="d"><a href="#" id="nodeA">Node</a></div></div></div></div>
<script type="text/javascript" language="javascript">
$(function(){$('#nodeA').click(function(){var tnode = getParentNode(this,'div',3);alert($(tnode).attr('id'));return false;});
});
function getParentNode(node,pname){level = arguments[2] ? (arguments[2]-1) : 0;if(node.nodeName == 'BODY') return node;var tnode = node.parentNode;pname = pname.toUpperCase();while(tnode.nodeName != pname && tnode.nodeName != 'BODY'){tnode = tnode.parentNode;}if(level === 0){return tnode;}else{return getParentNode(tnode,pname,level);}
}
</script>
</body>
</html>

转载于:https://blog.51cto.com/vsfor/1309261

js获取某节点的特定父节点相关推荐

  1. js获取树结构数据中默认节点的所有父节点

    需求描述: 一个树形下拉框,通过默认数据获取任意子节点的所有父节点id 思路: 1循环节点,判断是否是默认节点,是则保存到数组,否则判断是否有子节点,有则调用本身循环,并进行数组合并,没有子节点就重置 ...

  2. Element ui tree树形控件获取当前节点id和父节点id

    低版本Element ui tree树形控件获取当前节点id和父节点id的方法:点击查看 最新版本Element ui tree树形控件获取当前节点id和父节点id教程: 1.找到node_modul ...

  3. mysql 存储过程排序_MYSQL查询节点的所有父节点,按层级排序的存储过程

    查询节点的所有父节点,按层级排序的存储过程 父子关系表结构: `parentnode` int(11) ,-- 父节点 `node` int(11)  ,  -- 节点 `isparent` int( ...

  4. java 递归获取树的父节点_Java 树父节点递归获取树子节点

    package nodes4j; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * ...

  5. sql 树状结构中知道 父节点与孙节点_sqlserver树状结构表中,获取指定节点的所有父节点路径_MySQL...

    CREATE PROCEDURE [dbo].[A_P_GetParentIds] ( @IdValue NVARCHAR(36) ,-- 子节点值 @tableName NVARCHAR(MAX) ...

  6. js tree 根据子节点找到所有父节点

    利用深度优先遍历和递归 var acceptUnitNodes = null;//接收单位树形数据function findParentNode(ids){ //ids 是子节点数组var paren ...

  7. EasyUI中tree选中父节点自动选中子节点,取消子节点自动取消父节点,子节点勾选完毕自动勾选父节点

    今天有需求,将树设为具有全选功能 选中父节点自动全选子节点 全选状态下,当用户取消某一个子节点,自动取消父节点的勾选 未全选状态下,用户勾选全部子节点,自动勾选对应的父节点 感觉挺简单,实际写的时候才 ...

  8. JavaScript 节点概述 、父节点 parentNode、子节点children、兄弟节点、创建节点 添加节点、删除节点、复制拷贝节点 ★案例★

    一般 节点至少拥有nodeType(节点类型).nodeName(节点名称)和nodeValue(节点值)这三个基本属性 元素节点 nodeType 为 1 属性节点 nodeType 为 2 文本节 ...

  9. JavaScript文档对象模型DOM节点操作之父节点和子节点(2)

    1.父节点 示例代码: <!DOCTYPE html> <html><head><meta charset="utf-8">< ...

最新文章

  1. “WPF老矣,尚能饭否”—且说说WPF今生未来(上):担心
  2. linux 套接字选项定义
  3. WARN ServletController:171 - Can't find the the request for xxxx's Observer
  4. 在Python中使用lightgbm
  5. linux中断处理汇编入口,Linux中断处理体系结构分析(一)
  6. 【高等数学】一元函数微分学
  7. STM32单片机在Keil5下仿真的问题解决及GPIO口初始化、使用
  8. 合沟微服务怎么添加_如何在微服务中使用webservice?
  9. linux 安装Java
  10. 风尚云网学习-Linux/宝塔面板部署禅道开源系统
  11. 免费学plc的手机app_PLC学吧APP
  12. zookeeper应用实战之分布式锁
  13. 微信小程序怎么获取到data数据?
  14. PDF怎么转换成jpg图片
  15. 华东师范学院计算机模拟试卷,华东师范大学计算机组成原理模拟卷
  16. 如何快速学会一项新技能?
  17. 【Axure教程】中继器版穿梭表格
  18. Caché 23种设计模式
  19. 基于一定微信生态的小程序是否反之又形成了微信互联网?
  20. 关于UTF8,UTF16,UTF32,UTF16-LE,UTF16-BE

热门文章

  1. 基于python的测试报告自动化生成
  2. 匹配左括号或者右括号js_九章算法 | 蚂蚁金服面试题:有效的括号字符串
  3. eigrp配置实验_来,太阁带你做实验
  4. java interface作用是什么_Java注解总结:史上最全,有这一篇就够了
  5. linux mysql utf-8编码_笔记:linux下mysql设置utf-8编码方法
  6. solve mass matrix in matlab
  7. congruent matrix
  8. java 线程池的使用_Java 使用线程池执行若干任务
  9. python利器能下载库吗_效率倍增!5款超级好用的Python工具库!
  10. tomcat上的javaweb项目如何将ip地址更换为域名_Java Web 路线规划