jQuery之所以令人爱不释手,原因就在于其强大的选择器表达式令DOM操作优雅而艺术。jQuery选择器支持ID、tagName、CSS1~3表达式和XPath表达式,详细说明请参阅http://docs.jquery.com/Selectors网站上的内容。jQuery不仅模仿CSS和XPath选择器的用法和功能,还自定义了很多过滤方法,综合利用这些选择器,可以随心所欲地选择HTML结构中的任意元素。
所谓选择器(Selector)通俗地说就是一个表示特殊语义的字符串。只要把选择器字符串传递给jQuery()构造函数,就能够选择不同的DOM对象,并且可以返回jQuery对象。jQuery选择器支持CSS3选择器标准,读者可以在W3C官方网站(http://www.w3.org/TR/ css3-selectors)上了解CSS3选择器的标准,本书将在第3章对其进行详细讲解。
jQuery选择器按照功能主要分为选择和过滤,并允许配合使用,可以同时使用组合成一个选择器字符串。两者主要的区别如下。
(1) 过滤作用的选择器是利用指定条件从前面匹配的内容中筛选。过滤选择器也可以单独使用,此时表示从全部"*"元素中筛选。如:
广州网站建设,网站建设,广州网页设计,广州网站设计
- $(":[title]")
等同于:
- $("*:[title]")
(2) 选择功能的选择器则不会有默认的范围,因为它的作用是选择而不是过滤。
例如,在下面的示例中,$("input[type='button']")选择器可以匹配文档中type属性值为button的input元素,这个表达式是CSS表达式,然后为button添加click事件处理函数。示例演示效果如下。
广州网站建设,网站建设,广州网页设计,广州网站设计
- <script src="images/jquery-1.3.2.js" type="text/javascript"></script>
- <script type="text/javascript" >
- $(function(){
- $("input[type='button']").click(function(){
- var i = 0;
- $("input[type='text']").each(function(){
- i += parseInt($(this).val());
- });
- $('label').text(i);
- });
- $('input:lt(2)')
- .add('label')
- .css('border','none')
- .css('borderBottom','solid 1px navy')
- .css({'width':'30px'});
- });
- </script>
- <input value="1" /> +
- <input value="2" />
- <input type="button" value="=" />
- <label> </label>
在click事件处理函数中,$("input[type='text']")选择器能够匹配文档中所有输入框,然后调用each()方法遍历所有匹配的文本框,利用$(this)选择器获取当前文本框,使用val()读取当前文本框的值,再使用JavaScript的函数parseInt()把获取的字符串类型的值转换为数值类型,相加之后作为文本信息添加到label元素中显示出来。
$('input:lt(2)')选择器能够匹配文档中的所有input元素,然后筛选出排在前面的两个input元素,其中的伪类:lt表示序号小于某个值的意思。匹配到input元素之后,再添加label对象,合并成一个jQuery对象。然后通过链式语法连续调用三个css()方法为文本框设置样式。如果一次需要设置多个CSS样式,也可以使用下面的方法来进行设计。
广州网站建设,网站建设,广州网页设计,广州网站设计
- .css({
- 'border':'none',
- 'borderBottom':'solid 1px navy',
- 'width':'30px'
- });
如果只给css()方法传递一个字符串参数,则表示读取样式值,如css('color')就表示取得当前jQuery对象的样式属性color的值。而如果给它传递两个参数,则表示设置样式值。jQuery对象定义了很多类似的方法,如val()、text()、html()、click()、change()等。



