博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery的遍历结构设计——同胞元素的遍历例子
阅读量:6246 次
发布时间:2019-06-22

本文共 1688 字,大约阅读时间需要 5 分钟。

hot3.png

1、遍历的接口分为 祖先 同胞兄弟 后代 过滤

基础知识: nodeType 元素类型 节点类型 元素 1 属性 2 文本 3 注释 8 文档 9

nodeName 元素节点的nodeName是标签名称 属性节点的nodeName是属性名称 文本节点的nodeName永远是 #text 文档节点的nodeName永远是 #document

2、同胞遍历的例子:

  • I
  • II
    • A
    • B
      • 1
      • 2
      • 3
    • C
  • III

js代码

function dir(elem, dir, until) { var matched = [], truncate = until !== undefined; while ((elem = elem[dir]) && elem.nodeType !== 9) { if (elem.nodeType === 1) { if (truncate) { if (elem.nodeName.toLowerCase() == until || elem.className == until) { break; } } matched.push(elem); } } return matched; }

function nextAll(elem) { return dir(elem, "nextSibling"); }

function prevAll(elem) { return dir(elem, "previousSibling"); }

function nextUntil(elem, until) { return dir(elem, "nextSibling", until); }

function prevUntil(elem, until) { return dir(elem, "previousSibling", until); }

$("#test1").click(function(){ var item = $('li.item-ii'); alert(item.nextAll()[0].className) alert(item.prevAll()[0].className) alert(item.nextUntil('.end')[0].className) alert(item.prevUntil('.first')[0].className) })

$("#test2").click(function(){ var item = document.querySelectorAll('li.item-ii')[0] alert(nextAll(item)[0].className) alert(prevAll(item)[0].className) alert(nextUntil(item, '.end')[0].className) alert(prevUntil(item, '.first')[0].className) })

转载于:https://my.oschina.net/u/933915/blog/363915

你可能感兴趣的文章
swift - 本地通知2 - 啰嗦版
查看>>
swift - idfa(唯一标示/下载量/广告追踪)
查看>>
GC垃圾回收
查看>>
HDU 4804 Campus Design
查看>>
nyist 42 一笔画 (欧拉回路 + 并查集)
查看>>
用javascript实现用户登录验证
查看>>
博客05--查找
查看>>
进程与线程
查看>>
git 创建本地分支、提交到远程分支
查看>>
什么是http?
查看>>
pthreads v3下的同步处理synchronized
查看>>
10.第一个小项目
查看>>
SDS(Simple Dynamic String)一个简易动态字符串库
查看>>
swfit-pod使用
查看>>
(九)easyUI之选项卡
查看>>
日志分析工具ELK(三)
查看>>
PAT (Advanced Level) 1049. Counting Ones (30)
查看>>
HDU 5763 Another Meaning
查看>>
session详解
查看>>
scroll滚动条
查看>>