博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个样例看清楚JQuery子元素选择器children()和find()的差别
阅读量:5051 次
发布时间:2019-06-12

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

近期在我们的hybrid app项目开发中定位出了一个问题。通过这个问题了解下JQuery选择器find()和children()的差别。问题是这种:我们的混合app是一个单页面应用(main.html),逻辑上的页面是通过项目自己定义的.mspl文件(事实上就是html文件)来呈现的。

比方a.mspl、b.mspl、c.mspl载入的时候,都会插入到main.html中。可是每次仅仅显示1个mspl文件,当b.mspl显示的时候,a.mspl和c.mspl就会被隐藏。在a、b、c这3 个页面上都会显示当前手机网络是否可用。

当用户打开或者关闭手机网络的时候。会通过android广播调用webview里面的方法,刷新a、b、c这3个页面上显示的网络状态。

main.html结构例如以下:

      
a
1
b
2
c
3

当网络状态发生变化的时候,android会通过webview调用以下的JS方法,刷新页面显示的网络状态:

//online offlinefunction refreshNetworkStatus(status){	// 选中每个mspl下网络状态显示栏	var selector = $("div[spl-id='net_status']");		// 网络状态显示栏以下有2个span,第一个是用来显示网络状态的	$(selector).children("span:eq(0)").text(offlineTip);	}
问题是:当我们打开或者关闭网络连接,a.mspl可以正确显示网络状态,可是b.mspl和c.mspl中的网络状态显示栏不能刷新。

项目模拟代码例如以下:

      
a
1
b
2
c
3
能够看到我们点击online或者offline按钮。仅仅有a.mspl下的网络状态显示栏能正常。
假设不使用children(),而是使用find()就能够满足要求了。当点击online或者offline按钮时候,3个页面的网络状态显示都是正常的。

$(selector).find("span:eq(0)").text(text);

children()和find()的区别在于:

1.children方法获得的不过元素一下级的子元素,即:immediate children

2.find方法获得全部下级元素,即:all descendants 

3.children方法的參数selector是可选的。用来过滤子元素;但find方法的參数selector方法是必选的。

$(selector).children("span:eq(0)")的作用相当于$(selector).children().eq(0)

1.获取selector下的全部直接span,即结果是<span>a</span>。<span>1</span>,<span>b</span>,<span>2</span>,<span>c</span>。<span>3</span>

2.eq(0)选中的是第一个元素。所以改变的是<span>a</span>

$(selector).find("span:eq(0)").text(id);的作用相当于$(selector).each(function(){    $(this).children("span:eq(0)").text(id);});
1.对于selector选中的每个元素,都再用"span:eq(0)"筛选一次。即结果是<span>a</span>。<span>b</span>,<span>c</span>

更直观的样例,能够參考这篇文章“”。

转载于:https://www.cnblogs.com/llguanli/p/6918910.html

你可能感兴趣的文章
liunx系统虚拟机下安装tomcat9以及访问tomcat案例
查看>>
Oracle 插入Date数据
查看>>
word文档操作
查看>>
UIpageControl
查看>>
js判断是否为IE浏览器,是返回true,否返回false
查看>>
Linux性能分析 vmstat基本语法
查看>>
SpringMVC框架学习笔记(2)——使用注解开发SpringMVC
查看>>
深入理解递归函数的调用过程
查看>>
《在C#中实现Socket端口复用》 以及《 UDP 一个封锁操作被对 WSACancelBlockingCall 的调用中断。》问题...
查看>>
PDF格式的“在线阅读”和“下载”
查看>>
无耻之徒(美版)第七季/全集Shameless US迅雷下载
查看>>
svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
查看>>
Webpack4 学习笔记四 暴露全局变量、externals
查看>>
CF1005F Berland and the Shortest Paths
查看>>
vscode点击ctrl键报错Request textDocument/definition failed.
查看>>
图王:刺客——运筹帷幄善于在变化中找到方向的站长
查看>>
Safari无痕浏览影响localStorage
查看>>
POJ 3368 Frequent values (RMQ,4级)
查看>>
java 练习题3
查看>>
对象生命周期的简单理解
查看>>