关于jquery ID选择器的看法

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

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

我给出的答案会是:

1. $("#bar")

2.  $("div#bar")

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

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

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

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

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

时间: 2024-12-04 11:13:24

关于jquery ID选择器的看法的相关文章

带空格的 jquery ID 选择器

当 DOM ID有一个空格时,如何使用 jquery 的 ID 选择器? 例如,我的 DOM ID 是 <div id="content Module">Stuff</div> 应该如何使用 jquery 的 ID 选择器获取到这个 DOM 元素? 如果只是简单的如下 $("#content Module").whatever() jQuery 会直接报错. 解决方法: 使用属性选择器 $("[id='content Module'

jquery Id选择器与document.getElementByIdy区别

最近写毕设,发现$选择ID时并不能改本身的背景图片: chrom会报如下错误: Uncaught TypeError: Cannot set property 'backgroundImage' of undefined jquery选择器 $(#id) 返回的是jquery对象,用document.getElementById( id )返回的是DOM对象 (1)jquery对象可以使用两种方式转换为DOM对象, [ index ] 和 .get( index ) $(#id)[0]   得到

jQuery 语法-选择器-事件(基础知识)

jQuery 语法 jQuery 语法是通过选取 HTML 元素的,并对元素执行某些操作 基础语法: $(selector).action() 美元符号定义 jQuery 选择符(selector)"查询"和"查找" HTML 元素 jQuery 的 action() 执行对元素的操作 实例: $(this).hide() - 隐藏当前元素 $("p").hide() - 隐藏所有段落 $("p.test").hide() -

JQuery中的id选择器含有特殊字符时,不能选中dom元素的解决方法

1.jquery类库在我们实际项目中用的很多,大家经常需要根据控件的id,获取对应的html元素.但是:当id含有特殊字符的时候,是不能选中的. 2.自己简单的测试了下,jquery的id选择器只支持,单词.阿拉伯数字.下划线.中划线.其中单词,包括英文字母.汉字,但是控件id属于客户不可见内容,实际中开发人员是不用汉字作为id的,这里不考虑. 3.自己写了一个工具方法,开人人员只要将id转义后,jquery就能选中了,不用再考特殊字符的问题.代码是基于jquery1.6版本. function

jQuery easyUI id选择器 类选择器 标签选择器 属性选择器 及DOM对象和jQuery相互之间的转换

首先导入js文件 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"

jQuery的选择器中的通配符[id^=&#39;code&#39;]

1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']");//id属性以code结束的所有input标签 $("input[id*='code']");//id属性包含code的所有input标签 (2)根据索引选择 $("tbody tr:even"); //选择索引为偶数的所有tr标签 $("tbody

JQuery中的id选择器含有特殊字符时,不能选中dom元素

1.jquery类库在我们实际项目中用的很多,大家经常需要根据控件的id,获取对应的html元素.但是:当id含有特殊字符的时候,是不能选中的 2.jquery的id选择器只支持,单词.阿拉伯数字.下划线.中划线.其中单词,包括英文字母.汉字,但是控件id属于客户不可见内容,实际中开发人员是不用汉字作为id的,这里不考虑

jQuery选择器(ID选择器)第一节

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Untit

jQuery的选择器中的通配符[id^=&#39;code&#39;]或[name^=&#39;code&#39;]及jquery选择器总结

1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']");//id属性以code结束的所有input标签 $("input[id*='code']");//id属性包含code的所有input标签 $("input[name^='code']");//name属性以code开始的所有input标签 $("in