标签:
原文地址:http://www.cnblogs.com/onlys/articles/jQuery.html
jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法
$("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div") 选择所有的div标签元素,返回div元素数组 $(".myClass") 选择使用myClass类的css的所有元素 $("*") 选择文档中的所有的元素,可以运用多种的选择方式进行联合选择:例如$("#myELement,div,.myclass") 层叠选择器: $("form input") 选择所有的form元素中的input元素 $("#main > *") 选择id值为main的所有的子元素 $("label + input") 选择所有的label元素的下一个input元素节点,经测试选择器返回的是label标签后面直接跟一个input标签的所有input标签元素 ,等于next()$("#prev ~ div") 同胞选择器,该选择器返回的为id为prev的标签元素的所有的属于同一个父元素的div标签 ,等于 nextAll()基本过滤选择器: $("tr:first") 选择所有tr元素的第一个 $("tr:last") 选择所有tr元素的最后一个 $("input:not(:checked) + span") 过滤掉:checked的选择器的所有的input元素 $("tr:even") 选择所有的tr元素的第0,2,4... ...个元素(注意:因为所选择的多个元素时为数组,所以序号是从0开始) $("tr:odd") 选择所有的tr元素的第1,3,5... ...个元素 $("td:eq(2)") 选择所有的td元素中序号为2的那个td元素 $("td:gt(4)") 选择td元素中序号大于4的所有td元素 $("td:ll(4)") 选择td元素中序号小于4的所有的td元素 $(":header") $("div:animated") 内容过滤选择器: $("div:contains(‘John‘)") 选择所有div中含有John文本的元素 $("td:empty") 选择所有的为空(也不包括文本节点)的td元素的数组 $("div:has(p)") 选择所有含有p标签的div元素 $("td:parent") 选择所有的以td为父节点的元素数组 可视化过滤选择器: $("div:hidden") 选择所有的被hidden的div元素 $("div:visible") 选择所有的可视化的div元素 属性过滤选择器: $("div[id]") 选择所有含有id属性的div元素 $("input[name=‘newsletter‘]") 选择所有的name属性等于‘newsletter‘的input元素 $("input[name!=‘newsletter‘]") 选择所有的name属性不等于‘newsletter‘的input元素 $("input[name^=‘news‘]") 选择所有的name属性以‘news‘开头的input元素 $("input[name$=‘news‘]") 选择所有的name属性以‘news‘结尾的input元素 $("input[name*=‘man‘]") 选择所有的name属性包含‘news‘的input元素 $("input[id][name$=‘man‘]") 可以使用多个属性进行联合选择,该选择器是得到所有的含有id属性并且那么属性以man结尾的元素 子元素过滤选择器: $("ul li:nth-child(2)"),$("ul li:nth-child(odd)"),$("ul li:nth-child(3n + 1)") $("div span:first-child") 返回所有的div元素的第一个子节点的数组 $("div span:last-child") 返回所有的div元素的最后一个节点的数组 $("div button:only-child") 返回所有的div中只有唯一一个子节点的所有子节点的数组 表单元素选择器: $(":input") 选择所有的表单输入元素,包括input, textarea, select 和 button $(":text") 选择所有的text input元素 $(":password") 选择所有的password input元素 $(":radio") 选择所有的radio input元素 $(":checkbox") 选择所有的checkbox input元素 $(":submit") 选择所有的submit input元素 $(":image") 选择所有的image input元素 $(":reset") 选择所有的reset input元素 $(":button") 选择所有的button input元素 $(":file") 选择所有的file input元素 $(":hidden") 选择所有类型为hidden的input元素或表单的隐藏域 表单元素过滤选择器: $(":enabled") 选择所有的可操作的表单元素 $(":disabled") 选择所有的不可操作的表单元素 $(":checked") 选择所有的被checked的表单元素 $("select option:selected") 选择所有的select 的子元素中被selected的元素 选取一个 name 为”S_03_22″的input text框的上一个td的text值$(”input[@ name =S_03_22]“).parent().prev().text() 名字以”S_”开始,并且不是以”_R”结尾的$(”input[@ name ^=‘S_‘]“).not(”[@ name $=‘_R‘]“) 一个名为 radio_01的radio所选的值$(”input[@ name =radio_01][@checked]“).val(); $("A B") 查找A元素下面的所有子节点,包括非直接子节点$("A>B") 查找A元素下面的直接子节点$("A+B") 查找A元素后面的兄弟节点,包括非直接子节点$("A~B") 查找A元素后面的兄弟节点,不包括非直接子节点 1. $("A B") 查找A元素下面的所有子节点,包括非直接子节点 例子:找到表单中所有的 input 元素 HTML 代码: <form><label>Name:</label><input name="name" /><fieldset> <label>Newsletter:</label> <input name="newsletter" /></fieldset></form><input name="none" /> jQuery 代码: $("form input") 结果: [ <input name="name" />, <input name="newsletter" /> ] 2. $("A>B") 查找A元素下面的直接子节点 例子:匹配表单中所有的子级input元素。 HTML 代码: <form><label>Name:</label><input name="name" /><fieldset> <label>Newsletter:</label> <input name="newsletter" /></fieldset></form><input name="none" /> jQuery 代码: $("form > input") 结果: [ <input name="name" /> ] 3. $("A+B") 查找A元素后面的兄弟节点,包括非直接子节点 例子:匹配所有跟在 label 后面的 input 元素 HTML 代码: <form><label>Name:</label><input name="name" /><fieldset> <label>Newsletter:</label> <input name="newsletter" /></fieldset></form><input name="none" /> jQuery 代码: $("label + input") 结果: [ <input name="name" />, <input name="newsletter" /> ] 4. $("A~B") 查找A元素后面的兄弟节点,不包括非直接子节点 例子:找到所有与表单同辈的 input 元素 HTML 代码: <form><label>Name:</label><input name="name" /><fieldset> <label>Newsletter:</label> <input name="newsletter" /></fieldset></form><input name="none" /> jQuery 代码: $("form ~ input") 结果: [ <input name="none" /> ] 描述:选择指定属性值的元素,或者是以字符串开始其后跟随“-”符号的。
jQuery( "[attribute|=‘value‘]" )
例:查找出所有语言属性为en的链接。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>attributeContainsPrefix demo</title>
<style>
a{
display:inline-block;
}
</style>
<script src="./js/jquery-1.9.1.min.js"></script>
</head>
<body>
<a href="index.html" hreflang="en">Some text</a>
<a href="index.html" hreflang="en-UK">Some other text</a>
<a href="index.html" hreflang="english">will not be outlined</a>
<script>
$("a[hreflang|=‘en‘]").css("border","3px dotted green");
</script>
</body>
</html>
页眉选择器
jQuery( ":header" )
描述:选择页眉的所有标签,如 h1,h2, h3 等。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>header demo</title>
<style>
</style>
<script src="js/jquery-1.9.1.min.js"></script>
</head>
<body>
<h1>Header 1</h1>
<p>Contents 1</p>
<h2>Header 2</h2>
<p>Contents 2</p>
<script>
$(":header").css({background:"#ccc", color:"blue"});
</script>
</body>
</html>
语言选择器
jQuery( ":lang(language)" )
描述:选择所有用特定语言指定的标签。
根据标签指定语言的不同给标签上色。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>header demo</title>
<style>
body {
background-color: #ccc;
}
h3 {
margin: .25em 0;
}
div {
line-height: 1.5em
}
.usa {
background-color: #f00;
color: #fff;
}
.usa .usa {
background-color: #fff;
color: #000;
}
.usa .usa .usa {
background-color: #00f;
color: #fff;
}
.spain {
background-color: #f00;
color: #ff0;
}
.spain .spain {
background-color: #ff0;
color: #f00;
line-height: 3em;
}
.spain .spain .spain {
background-color: #f00;
color: #ff0;
line-height: 1.5em;
}
</style>
<script src="js/jquery-1.9.1.min.js"></script>
</head>
<body>
<h3>USA</h3>
<div lang="en-us">red
<div>white
<div>and blue</div>
</div>
</div>
<h3>Espana</h3>
<div lang="es-es">rojo
<div>amarillo
<div>y rojo</div>
</div>
</div>
<script>
$("div:lang(en-us)").addClass("usa");
$("div:lang(es-es)").addClass("spain");
</script>
</body>
</html>
根元素选择器
描述:选择文档的根节点元素。
jQuery( ":root" )
例:显示文档根节点标签名。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>root demo</title>
<style>
</style>
<script src="js/jquery-1.9.1.min.js"></script>
</head>
<body>
<div id="log">The root of this document is:</div>
<script>
$("<b></b>").html($(":root")[0].nodeName).appendTo("#log");
</script>
</body>
</html>
jQuery( ":target" ) 1.9新增
返回封装了id为当前文档URI的锚点名称的元素的jQuery对象。
注意::target选择器最好在$(window).load(callback)的函数参数callback中使用,否则在FireFox、Chrome等浏览器中可能会出现无法匹配到指定元素的问题(例如下面HTML示例代码中的n2)。
以下面这段HTML代码为例:
<div id="n1">
<p id="n2">
<span id="n3" class="abc">span2</span>
<span id="n4">span3</span>
</p>
</div>
假设当前文档的URI为http://localhost/demo.html#n2
,则$(":target")所匹配的元素如以下jQuery代码所示:
// 选择了id为n2的<p>元素
var $target = $(":target");
if( $target.length == 1){ // 如果匹配到了元素
var ele = $target[0]; // 获取JS原生DOM元素
alert( ele.tagName + "#" + ele.id ); // P#n2
}
上述jQuery代码在FireFox、Chrome等浏览器中可能无法获取到匹配的元素,你可以将:target选择器放在window.onload事件中处理:
// 在Chrome中,使用$(document).ready()仍然无法获取到匹配的元素
// 必须使用$(window).load()来获取
$(window).load(function(){
var $target = $(":target");
if( $target.length == 1){ // 如果匹配到了元素
var ele = $target[0]; // 获取JS原生DOM元素
alert( ele.tagName + "#" + ele.id ); // P#n2
}
});
参考:http://www.cnblogs.com/semcoding/category/511934.html
标签:
原文地址:http://www.cnblogs.com/mouse_in_beijing/p/5304255.html