treblesoftware 发表于 2013-2-7 17:26:37

JQuery元素选择器简介

JQuery选择器($( ))可以用来选择,创建DOM元素。一般来说,过去我们使用JS去控制页面的DOM,比如下面这段JS:

<script type="text/javascript"> function test(){var frm = document.form1;var tb = document.getElementById("tb1");    //获取表格对象var trs = tb.getElementsByTagName("tr");      //获取所有的<tr>//等等}</script>

使用WINDOW.document对象的getElementById或getElementsByTagName去获取页面里的DOM元素,而现在,我们可以使用$( ),让一切变的简洁与简单。

$( )使用类似CSS的语法格式,比如:

$("li")选中页面中所有包含li元素的DOM。等同的,$("a")。选中所有连接。

或者我们可以根据DOM的ID来进行选择,比如:

$("#someDiv"),我们责选中了以下DIV:

<div id="someDiv">我是DIV,ID叫someDiv <tt>someDiv</tt></div>

我们还可以使用更强大的选择器,比如:

$(".someDiv")或$("DomName.className")如:$("ul.myList")我们可以选中拥有CSS类someDiv的元素。


比如我们还可以对以下HTML代码:

<div id="someDiv">我是DIV,ID叫someDiv <tt>someDiv</tt></div>

这样选择:$("#someDiv tt"),我们就可以取得 <tt>someDiv</tt> 这个DOM元素。

还可以获取Form表单,如有下HTML:

<form action="" method="put" ><div>    <label>Text:</label> <input type="text" id="aTextField" name="someTextField"/></div><button type="submit" id="submitButton">Submit</button></form>

用选择器:$("form #aTextField") 获取 <input type="text" id="aTextField" name="someTextField"/> 。

JQuery选择器非常强大,包括子选择器,容器选择器,特性选择器,而且JQuery选择器本身附带了许多不同的方法,我们可以查询JQuery文档。

JQuery的子选择器,一般来说,有如下HTML:

<ul class="myList"><li><a href="http://jquery.com">jQuery supports</a>    <ul>      <li><a href="css1">CSS1</a></li>      <li><a href="css2">CSS2</a></li>      <li><a href="css3">CSS3</a></li>      <li>Basic XPath</li>    </ul></li><li>jQuery also supports    <ul>      <li>Custom selectors</li>      <li>Form selectors</li>    </ul></li></ul>

如果我们要选择 <li><a href="css1">CSS1</a></li> 这个DOM元素,怎么办?我们这样使用JQuery选择器:$(".myList li ul li a"),发现我们会选中所有ul下的li。这个时候我们可以使用子选择器来选定第一个li。如: $(".myList > li > a"),这里使用了符号">"。

而特性选择器:如$(form)会选择所有form中含有method的form。

选择器还可以按位置来选择,比如:$("form div label:first"),它可以帮我们选择第一个label。$("form div label:odd")选中为奇数的label。或者偶数$("form div label:even")的label。最后一个label,$(form div label:last)。

包括我们还可以使用$(input:checked),来选中radio被选中的元素。$(input:checked)来选中已经被选中的checkbox。

$(#languages tbody tr td:eq(2))这个选择器会选择第3个td。从0开始:

eq(n),选择第n个DOM元素;gt(n),选择除n以外的所有元素;lt(n),选择除n以外之前的所有DOM元素。

包括可以让JQUERY创建一个新页面:
<html>   <head>   <title></title>   <script type="text/javascript" src="scripts/jquery-1.2.1.js"></script>   <script type="text/javascript">      $(function(){//add one div$("<div class='foo'>I have foo!</div><div>I don 't</div>").appendTo("#someParentDiv");//add two div$("<div>Hi,I'm 2....OK?</div>").appendTo("#hello"); }); $(function(){$("#j").html("DOM元素DIV的总和为:"+$("div").size()); });    </script>   </head>    <body>   <div id="j">Div 1</div>   <div id="someParentDiv">Div 2</div>   <div id="hello">Div 3</div>    <div id="gg">hi...gogo!</div></body> </html>

一般来说,我们选择到了DOM元素的目的是为了取得列如TEXT这些元素的值,在JQUERY中我们可以这样获得:

/*获得TEXT.AREATEXT的值*/ var textval = $("#text_id").attr("value");//或者 var textval = $("#text_id").val(); /*获取单选按钮的值*/ var valradio = $("input[@type=radio][@checked]").val(); /*获取复选框的值*/ var checkboxval = $("#checkbox_id").attr("value"); /*获取下拉列表中所有的值*/ var selectval = $('#select_id').val();

如:

<html>   <head>   <title></title>   <script type="text/javascript" src="scripts/jquery-1.2.1.js"></script>   <script type="text/javascript">   function x(){var x=$("#aTextField").attr("value"); alert(x);}    </script> </head>    <body>   <div id="j">Div 1</div> <input type="text" id="aTextField" /></body> </html>

例子来自:《JQUERY IN ACTION》
页: [1]
查看完整版本: JQuery元素选择器简介