下载代码中的chapter2\lab.selectors.html可以测试jQuery选择器字符串。
$()函数可以包括第二个参数,这个参数是上下文参数。
$('.wrappedElement','#sampleDOM').removeClass('wrappedElement')
这样就可以把选择器的应用范围限制在DOM树中指定的部分。
jQuery兼容大部分的CSS3标准,可以直接将CSS选择器传递给$()函数:
示例 | 描述 |
a | 选择所有链接元素 |
#specialID | 选择id为specialID的元素 |
.specialClass | 选择拥有CSS类specialClass的元素 |
a#specialID.specialClass | 选择id为specialID并且拥有CSS类specialClass的链接元素 |
p a.specialClass | 选择拥有CSS类specialClass的链接元素,并且这个元素是<p>的子元素 |
div,span | 选择所有的div和所有的span |
子节点选择器:
特性选择器:
选择器 | 描述 |
* | |
e | |
e f | |
e>f | |
e+f | |
e~f | |
e.c | |
e#i | |
e[a] | |
e[a=v] | |
e[a^=v] | |
e[a$=v] | |
e[a!=v] | |
e[a*=v] |
冒号之前为上下文,冒号之后为过滤器。第一步确定上下文,然后在上下文中过滤出匹配的项。
过滤器 | 描述 |
:first | 上下文的第一个元素 |
:last | 上下文的最后一个元素 |
:first-child | 上下文的第一个子节点 |
:last-child | 上下文的最后一个子节点 |
:only-child | 上下文的唯一子节点。 |
:nth-child(n) | 上下文的第n个子节点,n从1开始 |
:nth-child(even|odd) | 上下文的偶数或奇数子节点 |
:nth-child(Xn+Y) | 上下文的由线性公式提供的子节点,n从1开始 |
:even | 上下文的偶数元素 |
:odd | 上下文的奇数元素 |
:eq(n) | 匹配第n个元素,n从0开始 |
:gt(n) | 匹配第n个元素之后的元素,不包括n,n从0开始 |
:lt(n) | 匹配第n个元素之前的元素,不包括n,n从0开始 |
过滤器 | 描述 |
:animated | 选择处于动画状态的元素 |
:button | 选择按钮元素。input[type=submit]/input[type=reset]/input[type=button]/button |
:checkbox | 选择复选框元素。input[type=checkbox] |
:checked | 选择处于选中状态的checkbox或radio元素 |
:contains(food) | 选择包含文本food的元素 |
:disabled | 选择处于禁用状态的元素 |
:enabled | 选择处于启用状态的元素 |
:file | 选择文件输入元素。input[type=file] |
:has(selector) | 选择至少包含一个匹配指定选择器元素的元素 |
:header | 选择标题元素。h1,h2,h3,h4,h5,h6 |
:hidden | 选择隐藏元素。 |
:image | 选择图片输入元素。input[type=image] |
:input | 选择表单元素。(input/select/textarea/button) |
:not(selector) | 选择不匹配指定选择器的元素 |
:parent | 选择有子节点(包含文本)的元素,空元素除外 |
:password | 选择口令元素 |
:radio | 选择单选框元素 |
:reset | 选择重置按钮元素。input[type=reset]/button[type=reset] |
:selected | 选择列表中处于选中状态的<option>元素 |
:submit | 选择提交按钮元素。input[type=submit]/button[type=submit] |
:text | 选择文本输入框元素。input[type=text] |
:visible | 选择可见的元素 |
input:not(:checkbox)
img:not([src*="dog"])
div:has(span)
tr:has(img[src$="puppy.png"])
$('<img>', { src: 'images/little.bear.png', alt: 'Little Bear', title: 'I woof in your general direction', click: function () { alert($(this).attr('title')); } }) .css({ cursor: 'pointer', border: '1px solid black', padding: '12px 12px 20px 12px', backgroundColor: 'white' }) .appendTo('body');
$()函数的第一个参数为标记名称。第二个参数用来指定特性和特性值,这个参数是一个javascript对象。
除了可以在第二个参数指定html特性外,还可以向少数jQuery方法传递值。如val, css, html, text, data, width, height, offset。
进一步精简由jQuery函数创建的包装集,提取、扩展或者获取包装集的子集。
可以使用网页chapter2/lab.operations.html来测试你的代码。这个网页允许输入任何可以生成jQuery包装集的表达式。
size(),返回包装集中元素的个数
get(index)
eq(index)
first()
last()
toArray()
index(element)
$('img[alt]).add('img[title'])
add(expr,context)
$('img[alt]').addClass('thickBorder').add('img[title]').addClass('seeThrough')
$('p').add('hi there!')
$('img[title]').not('[title*=puppy]')
not(expr)
$('img').not(function(){return !$(this).hasClass('keepMe')})
$('td').filter(function(){return this.innerHTML.match(/^\d+$/)})
filter(expr)
$('img')
.addClass('seeThrough')
.filter('[title*=dog]')
.addClass('thickBorder')
slice(begin, end)
has(test)
map(callback)
var allIds=$('div').map(function(){
return (this.id==undefined)?null:this.id
}).get()
each(iterator)
方法 | 描述 |
children([selector]) | |
closest([selector]) | |
contents() | |
next([selector]) | |
nextAll([selector]) | |
nextUntil([selector]) | |
offfsetParent() | |
parent([selector]) | |
parents([selector]) | |
parentsUntil([selector]) | |
prev([selector]) | |
prevAll([selector]) | |
prevUntil([selector]) | |
siblings([selector]) |
$(this).closest('div')
$(this).closest('div.myButtonContainer')
$(this).siblings('button[title="Close"')
wrappedSet.find('p cite')
var hasImage = $('*').is('img')
$('img').filter('[title]').hide().end().addClass('anImage')
$('div').addClass('a').find('img').addClass('b').andSelf().addClass('c')