jQuery 插件源码里看到的奇怪语句,难道是javascript的语法?

changxiang 2009-03-16 02:24:31
jQuery 插件源码里看到这样的奇怪的语句:
var nav = $('ul.navClass', container); //下一行

nav = nav.size() && nav || $('>ul:eq(0)', container); // 这一行!!!

第二行 && || ;是什么意思,这样写的作用是什么?
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2009-03-17
  • 打赏
  • 举报
回复
$('>ul:eq(0)', container); 是查找id为container的对象里面所有的ul元素并取得第一个ul元素

这一句等同$('#container>ul:eq(0)')


实际上你大可以把选择器,看成传统滴documnet.getElementByID() ,getElecmentByTag()这类东西
不过是jquery扩展的这些方法,让他支持了css,xpath和他自己定义的一些查询规则而已,而这些东西能让我们能更方便的查找和定位dom元素,比起js原本的getElementById要方便不少


nav = nav.size() && nav || $('>ul:eq(0)', container); 这句总体上的意思是在判断dom里是否存在要操作的那个ul元素
wanghui0380 2009-03-17
  • 打赏
  • 举报
回复
这个是jquery的方法,因为你用jquery插件,他是基于jquery.js滴,这套方式实际都是在jquery.js定义滴

javascript也是有一定面对对象功能滴,你看到的这些实际都是jquery.js里定义的对象和方法


var nav = $('ul.navClass', container); //下一行 选择id为container对象 里面所有class为navClass的ul元素


建议你有空看一下jquery 选择器方面的资料
changxiang 2009-03-17
  • 打赏
  • 举报
回复
楼上误解了,我的意思是
nav = nav.size() && nav || $('>ul:eq(0)', container);
这句话为什么这么写?有什么作用。
pgameli 2009-03-16
  • 打赏
  • 举报
回复
&& 逻辑符号“并且”的意思
|| “或”的意思

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧