jQuery入门第一课,方法用法实例
分类:前端技术

选择符可以认为是一个增强版的getElementById方法。getElementById方法返回的是一个HTML元素,jQuery选择符返回的是HTML元素的一个包装。利用这个包装集,jQuery赋予了HTML元素更多的可以操作的方法。在JQuery中,处于核心地位的一个函数就是$。对,它就是一个函数,名字有点古怪。这个函数就是选择函数,其一般用法是

jQuery选择器,jquery选择器大全

  选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器的理解,它们本身用法就非常简单,我更希望的是它能够提升个人编写jQuery代码的效率。本文配合截图、代码和简单的概括对所有jQuery选择器进行了介绍,也列举出了一些需要注意和区分的地方。

本文实例讲述了jQuery中find()方法用法。分享给大家供大家参考。具体分析如下:

var obj=$(selector);

一、基本选择器

此方法获得匹配元素集合中所有元素的子元素,并通过选择器、jQuery 对象或元素删选。
find()方法是获取匹配元素后代元素的好方法。

其中selector是一个字符串,就是下面要着重介绍的选择符。返回的是元素的包装集合。事实上,JQuery的核心$函数的威力远不止当作选择符来用,当它的参数是一个函数的时候,它的作用是类似onload事件,当页面的DOM元素完全加载后,它参数内的方法就会被执行。它比onload更有优势,onload只能注册1个函数,但是它可以多次被调用,也就是可以注册多个函数到DOM加载完全后执行,而且onload是要等页面上的所有内容都加载完毕后再执行的,如果有大图片等内容,可能造成函数执行延时。而$函数只要DOM结构完全加载就可以执行。下面看一个简单的例子:

1. id选择器(指定id元素)

将id="one"的元素背景色设置为黑色。(id选择器返单个元素)

$(document).ready(function () {
        $('#one').css('background', '#000');
    });

注意:children()只获取一级子元素,而find()将查找所所有子元素。

复制代码 代码如下:

2. class选择器(遍历css类元素)

将class="cube"的元素背景色设为黑色

$(document).ready(function () {
        $('.cube').css('background', '#000');
    });

语法结构一:

<html xmlns=";
<head>
<title>JQuery First Page</title>
<script type="text/javascript" src="jquery-1.3.2.js"></script>

3. element选择器(遍历html元素)

将p元素的文字大小设置为12px

$(document).ready(function () {
        $('p').css('font-size', '12px');
    });

复制代码 代码如下:

<script type="text/javascript">
$(function(){
var p=$('#p1');
alert(p);
});
</script>
</head>
<body>
<p id="p1">I'm a p</p>
</body>
</html>

4. * 选择器(遍历所有元素)

$(document).ready(function () {
            // 遍历form下的所有元素,将字体颜色设置为红色
        $('form *').css('color', '#FF0000');
    });

$(selector).find(expr)

可以看到,最简单的选择器就是和getElementById类似的,利用元素的ID作为选择符。可以看看p到底是什么,利用js调试器可以看到:

5. 并列选择器

$(document).ready(function () {
            // 将p元素和div元素的margin设为0
        $('p, div').css('margin', '0');
    });

二、 层次选择器

参数列表:

图片 1

1. parent > child(直系子元素)

$(document).ready(function () {
            // 选取div下的第一代span元素,将字体颜色设为红色
        $('div > span').css('color', '#FF0000');
    });

下面的代码,只有第一个span会变色,第二个span不属于div的一代子元素,颜色保持不变。

<div>
        123
        <p>
            456
        </p>
</div>
参数 描述
expr 字符串值,定义筛选表达式。

p是一个类似数组的对象,里面包含了被选中的元素。打开[Methods]结点可以看到很多方法,都是jQuery提供的方法。在这个例子中,元素只有一个,因此通过p[0]就能获得该HTML元素,p[0]就是和getElementById获得的对象是一样的。

2. prev next(下一个兄弟元素,等同于next()方法)

$(document).ready(function () {
            // 选取class为item的下一个div兄弟元素
    $('.item   div').css('color', '#FF0000');
            // 等价代码
    //$('.item').next('div').css('color', '#FF0000');
});

下面的代码,只有123和789会变色

<p class="item"></p>
<div>123</div>
<div>456</div>

<div>789</div>

实例代码:

jQuery选择符的强大之处在于它几乎完全兼容CSS2的选择符,而不管你的浏览器是否兼容CSS2。如果对CSS选择符还不熟悉的,请参考我的上一篇日志:CSS选择符。对于选择到的元素,可以给他施加很多方法,这些方法不是本文介绍的重点,这里先介绍一个,就是css(attr,value)方法,这个方法可以给包装元素的css属性中的attr属性的值设置为value.下面举的例子就是利用这个方法给页面元素增加一点字体上的变化,我们可以以此区分出某个选择符到底选中了哪些元素。这个例子和我上一篇的例子的内容几乎是一样的,我就不加解释了,只是这篇的例子也都适用于IE6!

3. prev ~ siblings(prev元素的所有兄弟元素,等同于nextAll()方法)

$(document).ready(function () {
            // 选取class为inside之后的所有div兄弟元素
    $('.inside ~ div').css('color', '#FF0000');
            // 等价代码
    //$('.inside').nextAll('div').css('color', '#FF0000');
});

下面的代码,G2和G4会变色

<div class="inside">G1</div>
<div>G2</div>
G3
<div>G4</div>

三、 过滤选择器

复制代码 代码如下:

复制代码 代码如下:

1. 基本过滤选择器

——1.1 :first和:last(取第一个元素或最后一个元素)

$(document).ready(function () {
            $('span:first').css('color', '#FF0000');
            $('span:last').css('color', '#FF0000');
        });

下面的代码,G1(first元素)和G3(last元素)会变色

G1
G2
G3

——1.2 :not(取非元素)

$(document).ready(function () {
            $('div:not(.wrap)').css('color', '#FF0000');
        });

下面的代码,G1会变色

<div>G1</div>
<div class="wrap">G2</div>

但是,请注意下面的代码:

<div>
    G1
            <div class="wrap">G2</div>
</div>

当G1所在div和G2所在div是父子关系时,G1和G2都会变色。

——1.3 :even和:odd(取偶数索引或奇数索引元素,索引从0开始,even表示偶数,odd表示奇数)

$(document).ready(function () {
            $('tr:even').css('background', '#EEE'); // 偶数行颜色
            $('tr:odd').css('background', '#DADADA'); // 奇数行颜色
        });

A、C行颜色#EEE(第一行的索引为0),B、D行颜色#DADADA

<table width="200" cellpadding="0" cellspacing="0"> <tbody> <tr><td>A</td></tr> <tr><td>B</td></tr> <tr><td>C</td></tr> <tr><td>D</td></tr> </tbody> </table>

——1.4 :eq(x) (取指定索引的元素)

$(document).ready(function () { $('tr:eq(2)').css('background', '#FF0000'); });

更改第三行的背景色,在上面的代码中C的背景会变色。

——1.5 :gt(x)和:lt(x)(取大于x索引或小于x索引的元素)

$(document).ready(function () {
            $('ul li:gt(2)').css('color', '#FF0000');
            $('ul li:lt(2)').css('color', '#0000FF');
        });

L4和L5会是红色,L1和L2会是蓝色,L3是默认颜色

<ul> <li>L1</li> <li>L2</li> <li>L3</li> <li>L4</li> <li>L5</li> </ul>

——1.6 :header(取H1~H6标题元素)

$(document).ready(function () {
            $(':header').css('background', '#EFEFEF');
        });

下面的代码,H1~H6的背景色都会变

<h1>H1</h1> <h2>H2</h2> <h3>H3</h3> <h4>H4</h4> <h5>H5</h5> <h6>H6</h6>

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="//www.jb51.net/" />
<title>children()函数-脚本之家</title>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(".father").find("p").css("color","red");
})
</script> 
</head>
<body>
<div class="father">
<div class="children">
   <p>我是孙子p</p>
</div>
<p>我是儿子p</p>
</div>
<p>我是兄弟p</p>
</body>
</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";
<html xmlns=";
<head>
<title>JQuery Selector</title>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
$(function(){
$("h1,h2").css("color","Red"); //element selector
$(".warning").css("font-style","italic"); //class selecotr
$("p.warning").css("color","Red");
$("p.big.warning").css("font-size","x-large");//multi-class selector
$("*[id]").css("color","red"); //attribute selector
$("p[class]").css("color","blue");
$("p[class][id]").css("font-size","x-large");
$("div[title='title']").css("font-weight","bold");
$("div[title^='title']").css("color","red");
$("div[title$='World']").css("color","blue");
$("div[title~='Hello']").css("font-size","x-large");
$("div[title*='Hello']").css("font-style","italic");
$("div[title|='Hello']").css("background-color","silver");
$("p .warning").css("font-size","x-large"); //decendent selector
$("body > .warning").css("border","1px solid"); //child selector
});
</script>
</head>
<body>
<h1>
This is H1</h1>
<h2>
This is H2</h2>
<h3>
This is H3</h3>
<p class="warning">
Real Warning!</p>
<span class="warning">Common Worning</span>
<p class="big warning ">
Warning and Big</p>
<div id="title">
I am title</div>
<p class="warning">
Real Warning!</p>
<p id="idp1" class="myclass">
P with an ID and class</p>
<p>
The last line.</p>
<p id="idp2">
P with an ID</p>
<div title="title" >I am title</div>
<div title="title2">I am title2</div>
<div title="Hello World">Hello World</div>
<div title="HelloWorld">HelloWorld</div>
<div title="Hello-World">Hello-World</div>
<p><span class="warning">Class warning inside p</span></p>
</body>
</html>

2. 内容过滤选择器

——2.1 :contains(text)(取包含text文本的元素)

$(document).ready(function () {
            // dd元素中包含"jQuery"文本的会变色
            $('dd:contains("jQuery")').css('color', '#FF0000');
        });

下面的代码,第一个dd会变色

<dl> <dt>技术</dt> <dd>jQuery, .NET, CLR</dd> <dt>SEO</dt> <dd>关键字排名</dd> <dt>其他</dt> <dd></dd> </dl>

——2.2 :empty(取不包含子元素或文本为空的元素)

$(document).ready(function () {
            $('dd:empty').html('没有内容');
});

上面第三个dd会显示"没有内容"文本

——2.3 :has(selector)(取选择器匹配的元素)

$(document).ready(function () {
            // 为包含span元素的div添加边框
            $('div:has(span)').css('border', '1px solid #000');
        });

即使span不是div的直系子元素,也会生效

<div> <h2> A <span>B</span> </h2> </div>

——2.4 :parent(取包含子元素或文本的元素)

$(document).ready(function () {
            $('ol li:parent').css('border', '1px solid #000');
        });

下面的代码,A和D所在的li会有边框

<ol> <li></li> <li>A</li> <li></li> <li>D</li> </ol>

以上代码可以将father元素下的所有p元素的字体颜色设置为红色。

效果如下:
图片 2 

3. 可见性过滤选择器

——3.1 :hidden(取不可见的元素)

jQuery至1.3.2之后的:hidden选择器仅匹配display:none或<input type="hidden" />的元素,而不匹配visibility: hidden或opacity:0的元素。这也意味着hidden只匹配那些“隐藏的”并且不占空间的元素,像visibility:hidden或opactity:0的元素占据了空间,会被排除在外。

参照:

下面的代码,先弹出"hello"对话框,然后hid-1会显示,hid-2仍然是不可见的。

<html xmlns="" > <head runat="server"> <title></title> <style type="text/css"> div { margin: 10px; width: 200px; height: 40px; border: 1px solid #FF0000; display:block; } .hid-1 { display: none; } .hid-2 { visibility: hidden; } </style> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('div:hidden').show(500); alert($('input:hidden').val()); }); </script> </head> <body> <div class="hid-1">display: none</div> <div class="hid-2">visibility: hidden</div> <input type="hidden" value="hello"/> </body> </html>

——3.2 :visible(取可见的元素)

下面的代码,最后一个div会有背景色

<script type="text/javascript"> $(document).ready(function() { $('div:visible').css('background', '#EEADBB'); }); </script> <div class="hid-1">display: none</div> <div class="hid-2">visibility: hidden</div> <input type="hidden" value="hello"/> <div> jQuery选择器大全 </div>

语法结构二:

jQuery的强大之处还不限于此,除了支持CSS选择符以外,jQuery自身还支持其他的选择符,其中一大类就是基于位置的选择符。例如选择列表中的第一个,或者表格中的偶数行等等。这类选择器的一般形式是 :location,例如 a:first,匹配页面上第一个a, p:even 匹配页面上偶数个p.下面详细介绍。

4. 属性过滤选择器

——4.1 [attribute](取拥有attribute属性的元素)

下面的代码,最后一个a标签没有title属性,所以它仍然会带下划线

<script type="text/javascript"> $(document).ready(function() { $('a[title]').css('text-decoration', 'none'); }); </script> <ul> <li><a href="#" title="DOM对象和jQuery对象" class="item">DOM对象和jQuery对象</a></li> <li><a href="#" title="jQuery选择器大全" class="item-selected">jQuery选择器大全</a></li> <li><a href="#" title="jQuery事件大全" class="item">jQuery事件大全</a></li> <li><a href="#" title="基于jQuery的插件开发" class="item">基于jQuery的插件开发</a></li> <li><a href="#" title="Wordpress & jQuery" class="item">Wordpress & jQuery</a></li> <li><a href="#" class="item">其他</a></li> </ul>

——4.2 [attribute = value]和[attribute != value](取attribute属性值等于value或不等于value的元素)

分别为class="item"和class!=item的a标签指定文字颜色

 

原文链接:

选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能...

复制代码 代码如下:

选择器 描述
:first 页面最先出现的。li a:first 在li标签下第一个出现的a
:last 同上,最后出现的。
:first-child 最先的子元素
:last-child 最后的子元素
:nth-child(n) 返回第n个子元素(从1开始)
:nth-child(even|odd) 返回第偶数|奇数个子元素
:even :odd 第偶数、奇数个元素
:eq(n) :gt(n) :lt(n) 返回第n个元素(从0开始),第n个元素之后元素,第n个元素之前的元素

$(selector).find(element)

先看一个例子再作解释:

可以查找匹配元素下指定的元素。

复制代码 代码如下:

参数列表:

<html xmlns=";
<head>
<title>Custom Selector</title>
<style type="text/css">
table
{
border-collapse: collapse;
font-family:Verdana;
}
td
{
padding-left: 10px;
padding-right: 10px;
border: solid 1px black;
}
</style>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
$(function(){
$('tr:first').css({fontWeight:'bold',fontSize:'large'});
$('tr:even').css('background-color','silver');
$('tr td:first').css('color','red');
$('tr:gt(0) :first-child').css('font-style','italic');
$('p:eq(0)').css({fontFamily:'Arial',fontSize:'x-large'});
});
</script>
</head>
<body>
<p>Entry Level DSLR Prices</p>
<table>
<tr>
<td>Company</td>
<td>Model</td>
<td>Price</td>
</tr>
<tr>
<td>Canon</td>
<td>1000D</td>
<td>3800</td>
</tr>
<tr>
<td>Canon</td>
<td>450D</td>
<td>4100</td>
</tr>
<tr>
<td>Canon</td>
<td>500D</td>
<td>4900</td>
</tr>
<tr>
<td>Canon</td>
<td>550D</td>
<td>6100</td>
</tr>
<tr>
<td>Nikon</td>
<td>D3000</td>
<td>3600</td>
</tr>
<tr>
<td>Nikon</td>
<td>D5000</td>
<td>4600</td>
</tr>
<tr>
<td>Pentax</td>
<td>Kx</td>
<td>3900</td>
</tr>
<tr>
<td>Sony</td>
<td>a230</td>
<td>2900</td>
</tr>
<tr>
<td>Sony</td>
<td>a450</td>
<td>4400</td>
</tr>
</table>
<p>Date: 2010-03</p>
</body>
</html>

参数 描述
element 用于匹配元素的DOM对象或者jQuery对象。

第一条语句是将第一行设置为粗体,大号字。第二句是将偶数行的背景设置为银灰色。第三句是将tr中的td元素的第一个设置成红色。第四句是将第二行开始所有tr的第一个子元素设置成斜体。

实例代码:

第四条展示了选择器的组合使用。 这一类的选择器和CSS选择器类似,也可以组合使用。 要特别注意 p:first 和 p :first的区别,前者表示的是在整个页面中第一个p,后者表示的是包含在p中的第一个元素。综合上面的解释,最终的结果应该是:

复制代码 代码如下:

图片 3

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="//www.jb51.net/" />
<title>find()函数-脚本之家</title>
<style type="text/css">
.father{
  height:200px;
  width:200px;
  border:1px solid blue;
}
</style>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(".father").find(document.getElementById("myp")).css("border","1px solid red");
})
</script>
</head>
<body>
<div class="father">
  <div class="children">
    <p id="myp">我是孙子p</p>
  </div>
  <p>我是儿子p</p>
</div>
<p>我是兄弟p</p>
</body>
</html>

题外话,上面这个图是在IE8下截的,不得不说IE对于字体的渲染真是赏心悦目啊。Chrome FF都没这么漂亮。

以上代码可以将father元素下id属性值为myp的元素的边框设置为一像素红色。

言归正传,继续介绍jQuery的最后一类选择器。这类选择器很像css的伪类,例如:

希望本文所述对大家的jQuery程序设计有所帮助。

:button 选择input[type=button]
:checked 选中的复选框或按钮
:contains('xxx') 包含字符串xxx的元素

您可能感兴趣的文章:

  • Jquery中find与each方法用法实例
  • Jquery中的层次选择器与find()的区别示例介绍
  • 基于jquery中children()与find()的区别介绍
  • jQuery初学:find()方法及children方法的区别分析
  • jQuery find和children方法使用
  • Jquery find与filter函数区别 说明
  • JQuery 选择器、过滤器介绍
  • 使用jquery选择器如何获取父级元素、同级元素、子元素
  • Jquery颜色选择器ColorPicker实现代码
  • Jquery选择器中使用变量实现动态选择例子
  • jquery选择器排除某个DOM元素的方法(实例演示)
  • jQuery中Find选择器用法示例

具体用法比较简单,不详细介绍。

...

本文由pc28.am发布于前端技术,转载请注明出处:jQuery入门第一课,方法用法实例

上一篇:Javascript处理DOM元素事件实现代码 下一篇:没有了
猜你喜欢
热门排行
精彩图文