我正在使用jQuery进行一些DOM遍历,我试图在单击按钮时在#treeList中一次选择一个元素,但是一旦它通过第二个列表#innerList,它将选择该列表中的所有元素,点击继续列表.你怎么能像#treeList一样继续#innerList?

$("#MoveDown").click(function() {

$('.parentStyle + li, li:eq(0)')

.last()

.addClass('parentStyle').siblings('li')

.removeClass('parentStyle');

});

.parentStyle {

background-color: #F99;

}

  • Aunt Grace
  • Mother Joan
  • Father Joe
    • Son John
    • Son James
    • Daughter Aine
  • Uncle Tom
  • Aunt Jen

Move down

最佳答案 我不是百分之百地讨论你想要遍历如何工作,但我会用这个假设来刺激它:

您希望它工作的方式是遍历所有LI,这些LI是给定UL(lvl 0)的直接子项.如果LI包含UL(lvl1),则在继续返回父邻近LI(lvl 0)之前,你想要进入该子列表(lvl 1).

如果这个假设是准确的,那么这段代码就可以实现:

$('.clickit').click(function() {

var level = 0;

var $list = $('#treeList');

traverseList($list, level);

});

function traverseList($list, level) {

if ($list.length > 0) {

$list.children('li').each(function() {

$(this).prepend(level);

if ($(this).children('ul')) {

traverseList($(this).children('ul'), level + 1);

}

});

}

}

更新:因为我没有阅读您的原始代码示例,或者没有得到适当的关注,所以我没有回答您正在寻找的内容.因为我看到你逐一前往下一个并添加一个类,我更新了一个新的小提琴.

使用index()方法,您可以跟踪您在树中的位置.我认为这可能是最简单的遍历方式.唯一的复杂因素是如果你想在父节点上保持样式,或者想要添加一个不同的类,但至少可以使用.closest(‘li’)完成.

码:

$("#MoveDown").click(function () {

var $tree = $('#treeList');

var $li = getLi($tree);

$tree.find('li').removeClass('parentStyle');

$li.addClass('parentStyle');

});

function getLi($tree) {

var $li = $tree.find('.parentStyle').last();

var $liList = $tree.find('li');

var idx = $liList.index($li);

if (idx < 0 || idx == $liList.length) { return $liList.first(); }

else { return $liList.eq(idx + 1); }

}

for jq 嵌套_遍历嵌套列表 – jQuery相关推荐

  1. python将图片作为变量_遍历图像列表并在python中将其作为变量分配

    我正在尝试编写一个函数,该函数迭代python中的图像列表,以便可以对枕头图像处理进行访问.ImTestA = Image.open("A.png") ImTestB = Imag ...

  2. Python学习笔记 -- 列表2: 遍历:嵌套列表, 将其中同位置的元素组成新的列表

    #遍历:嵌套列表, 将其中同位置的元素组成新的列表 lsts = [[1,2,3], [4,5,6],[7,8,9],[10,11,12]]ret_x = [x for [x,y,z] in lsts ...

  3. ajax 循环html元素,AJAX返回API数据并使用jQuery循环遍历嵌套的JSON数据

    我使用AJAX连接到返回JSON对象的API(请参阅下面的JSON代码参考),并试图循环并解析要在HTML元素内部呈现的JSON数据.AJAX返回API数据并使用jQuery循环遍历嵌套的JSON数据 ...

  4. python列表嵌套合并成一个列表

    python列表嵌套合并成一个列表 场景描述 代码处理 举个例子 场景描述 当我们在数据处理,使用列表推导式结合正则匹配时,会产生一个列表中嵌套多个列表的情况.这样遍历列表元素的时候会比较麻烦.因此将 ...

  5. Java树形转扁平_多层嵌套map对象转扁平化map

    将深度嵌套的map对象转换为扁平化的map对象输出. import org.apache.commons.lang3.StringUtils; import java.util.HashMap; im ...

  6. html语言中项目列表的嵌套,做HTML嵌套列表的正确方法?

    选项2是正确的:嵌套的 是 它属于我.如果你验证,选项1在html 5中出现错误-信用:用户3272456 正确: 作为.的孩子 生成HTML嵌套列表的正确方法是使用嵌套的 作为一个孩子 它属于它的. ...

  7. mysql中的exists嵌套_基于mysql 的exists 嵌套查询的详解

    select Sname from Student where not exists (select * from Course where not exists (select * from SC ...

  8. python 遍历嵌套字典

    遍历嵌套字典的方法有多种,下面是一种通用的方法: def print_nested_dict(d, indent=0):for key, value in d.items():print(' ' * ...

  9. Jquery真的不难~第五回 JQ中的遍历(遍历中的性能知识点)

    回到目录 上一回主要说的是JQ中的几个主要的事件,文章的最后还介绍了匿名函数的使用,恩,今天主要来看一下JQ中的遍历,就是在JQ中进行循环操作以及在遍历时要注意的地方. 前言 要讲遍历就要说数组,你不 ...

最新文章

  1. 查看linux虚拟机信息,虚拟机:Linux查看线程信息的步骤
  2. NetScaler的部署实验之二NetScaler的传输环路值的设定
  3. 深入理解javascript原型和闭包(6)——继承
  4. 我的日常工具——gdb篇
  5. mllib调参 spark_从Spark MLlib到美图机器学习框架实践
  6. HashedWheelTimer时间轮定时任务原理分析
  7. datav本地部署 java,Spring Boot对Spring Data JPA的自动配置
  8. [C/C++标准库]_[0基础]_[怎样实现std::string自己的Format(sprintf)函数]
  9. 容易造成单片机内存溢出的几个陷阱
  10. java copy-on-write_[Java并发-18-并发设计模式] COW模式:Copy-on-Write模式的应用领域
  11. GIT 查看/修改用户名和邮箱地址
  12. .NET中的设计模式——一步步发现装饰模式
  13. 369Cloud控制台、IDE、组件、引擎升级全面解析
  14. oracle的即时客户端,安装oracle即时客户端
  15. 联想集团杨元庆:联想携手SAP解决用户云计算应用痛点
  16. 微信小程序的开发需要什么费用
  17. php取名字的姓,【更新】爬取姓名大全的名字
  18. Mac 快捷键符号 斜箭头
  19. Android开发笔记(一百八十六)管理SQLite的利器——应用检查器App Inspection
  20. vitamio视频框架使用详解

热门文章

  1. 小程序禁止左右拖动_网课视频快进小技巧
  2. 在ubuntu上启动一个vue项目
  3. jquery 数字滚动特效 数字自增特效 数字位数动态适应
  4. Unity设置播放模式下始终先执行指定的场景
  5. HBase的环境配置及其应用
  6. 轻量级OLAP(一):Cube计算
  7. 输入一个数,求1到他 的和(for循环)
  8. 【系统】windows2003 至少有一个服务或驱动程序无法加载或错误
  9. java中getlast_Java ArrayDeque getLast()用法及代码示例
  10. mysql中ip用什么存,在MySQL中,价钱和IP用什么类型存储最好?