最近看到一道前端面试题:

请优化selector写法:$(".foo div#bar:eq(0)")

 

我给出的答案会是:

1. $("#bar")

2.  $("div#bar") 

下面说说我为什么会给出两种答案

1. 因为页面要求ID是唯一的,题目中的语句,可以直接优化成ID选择

2. 因为jQuery的选择器引擎用的是Sizzle,而$("div#bar")这样的写法,在Sizzle内部,会是一个从右往左的查找顺序,也就是先找到id=bar的元素,然后再跟前面的标签类型做匹配。

也许有人会觉得第二种写法有点多余,但实际上,在一些需要限定标签类型的jQuery插件中,这样的写法很常见。

在这里简单举个例子,很多人比较熟悉的jqGrid插件中就有这么一段:

关于jquery ID选择器的一点看法

相关文章:

  • 2022-12-23
  • 2021-06-09
  • 2022-12-23
  • 2021-10-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
猜你喜欢
  • 2021-07-11
  • 2021-09-26
  • 2021-10-10
  • 2021-06-02
  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案