http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp
例子1,给<P>元素添加onclick事件
Var items=document.getElementsByTagName(“p”);//获取网页所有p元素
For(var i=0;i<items.length;i++){
Items[i].onclick=function(){
//onclick事件
}
}
例子1
$(“p”).click(function(){
//onclick事件
})
例子2,使一个特定的表格隔行变色
Var item=document.getElementById(“tb”);// tb是表格id <table id=”tb”>
Var tbody=item.getElementByTagName(“tbody”)[0];//获取表格第一个tbody元素
Var trs=tbody.getElementsByTagName(“tr”); //获取tbody下面的所有tr元素集合
For(var i=0;i<trs.length;i++){
If(i%2==0)//取模 (取余数 例如 0%2==0 ,1%2==1)
{
Trs[i].style.backgroundColor=”#888”;//改变符合条件的tr元素的背景色
}
}
例子2
$(‘#tb tbody tr : even’).css(“backgroundColor”,”#888”);
//获得id为tb的元素,然后寻找它下面的tbody标签,再寻找tbody下面的索引值是偶数的tr元素
//改变背景色 css(“property”,”value”);
例子3 对多选框进行操作,输出选中的多选框个数
Var btn =document.getElemengtById(“btn”);
Ntn.onclick=function(){
Var arrays=new Array();
Var items=document.getElementByName(“check”);//获取name为check的控件
For(int i=0;i<items.length;i++){
If(items[i].checked)
{
Arrays.puth(items[i].value);
}
}
Alert(“选中个数为:”+ arrays.length);
}
例子3
$(‘#btn’).click(function(){
Var length=$(“input[name=’check’]:checked”).length;
Alert(“选中的个数为”+length);
})
基本选择器
根据id #id $(#test) 返回单个元素 document.getElementById(“test”)
根据class .class $(.test) 返回集合元素
根据标签 element $(“p”) 返回集合元素
所有元素 * $(*) 返回集合元素
基本选择器示例
eg1: //选择 id为 one 的元素
$('#btn1').click(function(){
$('#one').css("background","#bfa"); });
eg2: //选择 class 为 mini 的所有元素
$('#btn2').click(function(){
$('.mini').css("background","#bfa");});
eg3: //选择 元素名是 div 的所有元素
$('#btn3').click(function(){
$('div').css("background","#bfa"); });
eg4: //选择 所有的元素
$('#btn4').click(function(){
$('*').css("background","#bfa");});
eg5: //选择 所有的span元素和id为two的div元素
$('#btn5').click(function(){
$('span,#two').css("background","#bfa"); });
层次选择器
1, 选取元素后代 $(“div span”) 选取div元素里所有的span元素
2, 选取元素后代 $(“div >span”) 选取div元素下所有的span元素,指div的次级子元素
如 <div><span></span></div> , <div><body><span></span></ body ></div>这样div下面就不能获取到span
3, $(‘prev + next ’)选取紧接在prev元素后面的next元素
$(‘.one + div’) 选择class为one的下一个div元素 相当于$(“.one”).next(“div”);
4, $(‘prev ~ sibling ’) 选取prev元素之后的所有sibing
$(#two~ div)选取id为two的元素后面的所有div兄弟元素相当于$(“. two”).nextAll(“div”);
层次选择器示例
$(document).ready(function(){//选择 body内的所有div元素.
$('#btn1').click(function(){
$('body div').css("background","#bbffaa");})
//在body内的选择 元素名是div 的子元素.
$('#btn2').click(function(){
$('body > div').css("background","#bbffaa");})
//选择 所有class为one 的下一个div元素.
$('#btn3').click(function(){
$('.one + div').css("background","#bbffaa");})
//选择 id为two的元素后面的所有div兄弟元素.
$('#btn4').click(function(){
$('#two ~ div').css("background","#bbffaa");})});
<script type="text/javascript">
$(function() {
//实现隔行变色
$("tr:odd", "#mydiv").css("background-color", "yellow");
$("tr:has(td)", "#mydiv").mouseover(function() {
//获取到有td这个标签的tr标签
//has将匹配元素集合缩减为包含特定元素的后代的集合
if ($(this).find(":checkbox")[0].checked) return false;
//如果当前行 checkbox被选中
this.tag = $(this).css("background-color");
$(this).css("background-color", "red");
})
.mouseout(function() {
if ($(this).find(":checkbox")[0].checked) return false;
if (this.tag)
$(this).css("background-color", this.tag);
})
$(":checkbox", "#mydiv").click(
//选取#mydiv范围内所有checkbox
function() {
if (this.checked) {
//$(this).parent().parent()
// $(this) 指选中的td元素
$(this).parents("tr").css("background-color", "blue");
}
}
)
}
)
</script>
基本选择器
根据id #id $(#test) 返回单个元素 document.getElementById(“test”)
根据class .class $(.test) 返回集合元素
根据标签 element $(“p”) 返回集合元素
所有元素 * $(*) 返回集合元素
基本选择器示例
eg1: //选择 id为 one 的元素
$('#btn1').click(function(){
$('#one').css("background","#bfa"); });
eg2: //选择 class 为 mini 的所有元素
$('#btn2').click(function(){
$('.mini').css("background","#bfa");});
eg3: //选择 元素名是 div 的所有元素
$('#btn3').click(function(){
$('div').css("background","#bfa"); });
eg4: //选择 所有的元素
$('#btn4').click(function(){
$('*').css("background","#bfa");});
eg5: //选择 所有的span元素和id为two的div元素
$('#btn5').click(function(){
$('span,#two').css("background","#bfa"); });
层次选择器
1, 选取元素后代 $(“div span”) 选取div元素里所有的span元素
2, 选取元素后代 $(“div >span”) 选取div元素下所有的span元素,指div的次级子元素
如 <div><span></span></div> , <div><body><span></span></ body ></div>这样div下面就不能获取到span
3, $(‘prev + next ’)选取紧接在prev元素后面的next元素
$(‘.one + div’) 选择class为one的下一个div元素 相当于$(“.one”).next(“div”);
4, $(‘prev ~ sibling ’) 选取prev元素之后的所有sibing
$(#two~ div)选取id为two的元素后面的所有div兄弟元素相当于$(“. two”).nextAll(“div”);
层次选择器示例
$(document).ready(function(){//选择 body内的所有div元素.
$('#btn1').click(function(){
$('body div').css("background","#bbffaa");})
//在body内的选择 元素名是div 的子元素.
$('#btn2').click(function(){
$('body > div').css("background","#bbffaa");})
//选择 所有class为one 的下一个div元素.
$('#btn3').click(function(){
$('.one + div').css("background","#bbffaa");})
//选择 id为two的元素后面的所有div兄弟元素.
$('#btn4').click(function(){
$('#two ~ div').css("background","#bbffaa");})});
<script type="text/javascript">
$(function() {
//实现隔行变色
$("tr:odd", "#mydiv").css("background-color", "yellow");
$("tr:has(td)", "#mydiv").mouseover(function() {
//获取到有td这个标签的tr标签
//has将匹配元素集合缩减为包含特定元素的后代的集合
if ($(this).find(":checkbox")[0].checked) return false;
//如果当前行 checkbox被选中
this.tag = $(this).css("background-color");
$(this).css("background-color", "red");
})
.mouseout(function() {
if ($(this).find(":checkbox")[0].checked) return false;
if (this.tag)
$(this).css("background-color", this.tag);
})
$(":checkbox", "#mydiv").click(
//选取#mydiv范围内所有checkbox
function() {
if (this.checked) {
//$(this).parent().parent()
// $(this) 指选中的td元素
$(this).parents("tr").css("background-color", "blue");
}
}
)
}
)
</script>
过滤选择器
$("p:first") | 第一个 <p> 元素,返回单个元素 | |
$("p:last") | 最后一个 <p> 元素,返回单个元素 | |
:not(selector) | $("input:not(:empty)") | 所有不为空的 input 元素,返回集合元素 去除所有与给定选择器匹配的元素 |
$("tr:even") | 所有索引偶数 <tr> 元素,返回集合元素 $(“input:even”),选取索引为偶数的input元素 | |
$("tr:odd") | 所有索引奇数 <tr> 元素,返回集合元素 $(“input:odd”),选取索引为奇数的input元素 | |
$("ul li:eq(3)") | 列表中的第四个元素(index 从 0 开始),返回单个元素 $(“input:eq(1)”)选取索引等于1的input元素 | |
$("ul li:gt(3)") | 列出 index 大于 3 的元素,返回集合元素 $(“input:gt(1)”)选取索引大于1的input元素 | |
$("ul li:lt(3)") | 列出 index 小于 3 的元素,返回集合元素 $(“input: lt (1)”)选取索引小于1的input元素 | |
$(":header") | 所有标题元素 <h1> - <h6> $(":header"),选取网页所有<h1><h2>… | |
| 所有动画元素 $(“div:animated”)选取正在执行动画的div元素 |
通过索引访问集合元素
//选择第一个div元素.
$('#btn1').click(function(){ $('div:first').css("background","#bfa"); })
//选择最后一个div元素.
$('#btn2').click(function(){ $('div:last').css("background","#bfa"); })
//选择class不为one的 所有div元素.
$('#btn3').click(function(){ $('div:not(.one)').css("background","#bfa"); })
//选择 索引值为偶数 的div元素。
$('#btn4').click(function(){
$('div:even').css("background","#bfa"); })
//选择 索引值为奇数 的div元素。
$('#btn5').click(function(){
$('div:odd').css("background","#bfa");
})
//选择 索引等于 3 的元素
$('#btn6').click(function(){
$('div:eq(3)').css("background","#bfa");
})
//选择 索引大于 3 的元素
$('#btn7').click(function(){
$('div:gt(3)').css("background","#bfa");
})
//选择 索引小于 3 的元素
$('#btn8').click(function(){
$('div:lt(3)').css("background","#bfa");
})
//选择 所有的标题元素.比如h1, h2, h3等等...
$('#btn9').click(function(){
$(':header').css("background","#bfa");
})
//选择 当前正在执行动画的所有元素.
$('#btn10').click(function(){
$(':animated').css("background","#bfa");
});
内容过滤选择器
$(":contains('W3School')") | 包含指定字符串的所有元素,返回集合元素 $(“div:contains(‘我’)”)选取含有文本“我”的div元素 | |
$(":empty") | 无子(元素)节点的所有元素,返回集合元素 $(“div:empty”)选取不包含子元素(包含文本)的div | |
:has(selector) | 选取含有选择器所匹配的元素的元素 | $(“div:has(p)”)选取含有<p>元素的div元素 |
:parent | 选取含有子元素或文本的元素 | $(“div:parent”)选取拥有子元素(包含文本元素)的div元素 |
内容过滤选择器示例
$(document).ready(function(){
//选取含有文本"di"的div元素.
$('#btn1').click(function(){
$('div:contains(di)').css("background","#bbffaa");
})
//选取不包含子元素(或者文本元素)的div空元素.
$('#btn2').click(function(){
$('div:empty').css("background","#bbffaa");
})
//选取div元素子元素含有class为mini元素 的
$('#btn3').click(function(){
$('div:has(.mini)').css("background","#bbffaa");
})
//选取含有子元素(或者文本元素)的div元素.
$('#btn4').click(function(){
$('div:parent').css("background","#bbffaa");})
});
:hidden | $("p:hidden") | 所有隐藏的 <p> 元素 包括<input type=”hidden”>,<div style=”display:none”> 和 <div style=”visibility:hidden”;等元素,如果只想选取input元素,可以使用$(“input:hidden”) |
$("table:visible") | 所有可见的表格 $(“div:visible”)选取所有可见的div元素 |
可见性过滤选择器示例
$('#reset').click(function(){
window.location.reload();})
//给id为mover的元素添加动画.
function animateIt() {
$("#mover").slideToggle("slow", animateIt); }//回调函数
animateIt();
//选取所有不可见的元素.包括<input type="hidden"/>.
$('#btn_hidden').click(function(){
alert( "不可见的元素有:"+$('body :hidden').length +"个!\n"+
"其中不可见的div元素有:"+$('div:hidden').length+"个!\n"+
"其中文本隐藏域有:"+$('input:hidden').length+"个!");
$('div:hidden').show(3000).css("background","#bbffaa"); })
//选取所有可见的元素.
$('#btn_visible').click(function(){
$('div:visible').css("background","#FF6500"); })
} 注意:在可见性选择器中,需要注意:hidden,它不仅包括 样式属性display为none的元素,还包括 文本隐藏域(<input type=“hidden”/>)及Visibility:hidden的元素
属性过滤选择器
[attribute] | 选取拥有此属性的元素 | $(“div[id]”) 选取拥有属性id的元素 |
[attribute=value] | 选取属性值为value的元素 | $(“div[title=test]”)选取属性title为test的div元素 |
[attribute!=value] | 选取属性值不等于value的元素 | $(“div[title!=test]”)选取属性title不等于test的div元素(没有属性title的div也会被选) |
[attribute^=value] | 选取属性值以value开始的元素 | $(“div[title^=test]”)选取属性title以”test”开始的元素 |
[attribute$=value] | 选取属性值以value结束的元素 | $(“div[title$=test]”)选取属性title以”test”结束的元素 |
[attribute*=value] | 选取属性值含有value的元素 | $(“div[title*=test]”)选取属性title含有”test”的元素 |
[selector1] [selector2] [selectorN] | 用属性选择器合并成一个复合属性选择器,满足多个条件 | $(“div[id][title$=’test’]”)选择拥有属性id,并属性title以‘test’结束的div元素 |
属性过滤选择器示例
//选取含有 属性title 的div元素.
$('#btn1').click(function(){
$('div[title]').css("background","#bbffaa");
})
//选取 属性title值等于 test 的div元素.
$('#btn2').click(function(){
$('div[title=test]').css("background","#bbffaa");})
//选取 属性title值不等于 test 的div元素.
$('#btn3').click(function(){
$('div[title!=test]').css("background","#bbffaa");
})
//选取 属性title值 以 te 开始 的div元素.
$('#btn4').click(function(){
$('div[title^=te]').css("background","#bbffaa");
})
//选取 属性title值 以 est 结束 的div元素.
$('#btn5').click(function(){
$("div[title$=est]").css("background","#bbffaa");})
//选取 属性title值 含有 es 的div元素.
$('#btn6').click(function(){
$("div[title*=es]").css("background","#bbffaa");})
//组合属性选择器,首先选取有属性id的div元素,然后在结果中 选取属性title值 含有 es 的元素.
$('#btn7').click(function(){
$("div[id][title*=es]").css("background","#bbffaa"); })
子元素过滤选择器
:nth-child(index/even/ odd/equation) | 选取每个父元素下的index个子元素 或机偶元素(index从1算起) | :eq(index)只匹配一个元素。而:nth-clild将为每一个父元素匹配子元素。并且:nth-clild(index)的index是从1算起,eq的index是从0算起
|
:first-child | 选取每个父元素的第一个子元素 | :first只返回单个元素,而:first-child选择将为每个父元素匹配第一个子元素。例如$(“ul li:first-child”)选取每个<ul>中的第一个<li>元素 可能有多个ul元素,返回每个ul元素的第一个li |
:last-child | 选取每个父元素的最后一个子元素 | :list只返回单个元素,而:list-child选择符将为每个父元素匹配最后一个子元素 例如$(“ul li:last-chlid”)在<ul>中选取最后一个<li>元素 |
:only-child | 如果某个父元素是它父元素中唯一 子元素,那么将会被匹配,如果父元素中有其他子元素,则不被匹配 | $(“ul li:only-chlid”)在<ul>中选取唯一一个<li>元素 |
:nth-child(even)能选取每个父元素下的索引值是偶数的元素
:nth-child(odd)能选取每个父元素下的索引值是奇数的元素
:nth-child(2) 能选取每个父元素下索引值等于2的元素
:nth-child(3n) 能选取每个父元素下索引值是3的倍数的元素(n从0开始)
:nth-child(3n+1) 能选取每个父元素下索引值是3n+1的元素(n从0开始)
子元素过滤器示例
//选取每个父元素下的第2个子元素 div等于one
$('#btn1').click(function(){
$('div.one :nth-child(2)').css("background","#bbffaa");
})
//选取每个父元素下的第一个子元素
$('#btn2').click(function(){
$('div.one :first-child').css("background","#bbffaa");
})
//选取每个父元素下的最后一个子元素
$('#btn3').click(function(){
$('div.one :last-child').css("background","#bbffaa");
})
//如果父元素下的仅仅只有一个子元素,那么选中这个子元素
$('#btn4').click(function(){
$('div.one :only-child').css("background","#bbffaa");
})
表单属性过滤选择器
:enabled | 选取所有可用元素 | $(“#from1 :enabled”) 选取id我为from1的表单所有可用元素 |
:disabled | 选取所有不可用元素 | $(“#from2 :disabled”) 选取id我为from2的表单所有不可用元素 |
:checked | 选择所有被选中元素(单选框,复选框) | $(input :checked)选取所有被选中的input元素 |
:selected | 选择所有被选中的选项元素(下拉列表) | $(select :selected)选取所有被选中的选项元素 |
<script type="text/javascript">
$(document).ready(function(){//重置表单元素
$(":reset").click(function(){
setTimeout(function() {
countChecked();
$("select").change();
},0); });
//对表单内 可用input 赋值操作.
$('#btn1').click(function(){
$("#form1 input:enabled").val("这里变化了!");
return false; })
//对表单内 不可用input 赋值操作.
$('#btn2').click(function(){
$("#form1 input:disabled").val("这里变化了!");
return false; })
//使用:checked选择器,来操作多选框.
$(":checkbox").click(countChecked);
function countChecked() {
var n = $("input:checked").length;
$("div").eq(0).html("<strong>有"+n+" 个被选中!</strong>");}
countChecked();//进入页面就调用.
//使用:selected选择器,来操作下拉列表.
$("select").change(function () {
var str = "";
$("select :selected").each(function () {//选中项执行事件
str += $(this).text() + ",";
});
$("div").eq(1).html("<strong>你选中的是:"+str+"</strong>");
}).trigger('change');
// trigger('change') 在这里的意思是:
// select加载后,马上执行onchange.
// 也可以用.change()代替.
});
//]]>
</script>
表单选择器
$(":input") | 所有 <input> 元素,<input>,<textarea>,<select>,<button>等 | |
$(":text") | 所有 type="text" 的 <input> 元素,所有单行文本框 | |
$(":password") | 所有 type="password" 的 <input> 元素,所有密码框 | |
$(":radio") | 所有 type="radio" 的 <input> 元素,单选框 | |
$(":checkbox") | 所有 type="checkbox" 的 <input> 元素,复选框 | |
$(":submit") | 所有 type="submit" 的 <input> 元素,所有提交按钮 | |
$(":reset") | 所有 type="reset" 的 <input> 元素。所有重置按钮 | |
$(":button") | 所有 type="button" 的 <input> 元素,所有按钮 | |
$(":image") | 所有 type="image" 的 <input> 元素,所有图像按钮 | |
$(":file") | 所有 type="file" 的 <input> 元素。 |
var $alltext = $("#form1 :text");
var $allpassword= $("#form1 :password");
var $allradio= $("#form1 :radio");
var $allcheckbox= $("#form1 :checkbox");
var $allsubmit= $("#form1 :submit");
var $allimage= $("#form1 :image");
var $allreset= $("#form1 :reset");
var $allbutton= $("#form1 :button"); // <input type=button /> 和 <button ></button>都可以匹配
var $allfile= $("#form1 :file");
var $allhidden= $("#form1 :hidden"); // <input type="hidden" />和<div style="display:none">test</div>都可以匹配.
var $allselect = $("#form1 select");
var $alltextarea = $("#form1 textarea");
var $AllInputs = $("#form1 :input");
var $inputs = $("#form1 input");
jQuery 选择器
选择器 | 实例 | 选取 |
---|---|---|
* | $("*") | 所有元素 |
#id | $("#lastname") | id="lastname" 的元素 |
.class | $(".intro") | 所有 class="intro" 的元素 |
element | $("p") | 所有 <p> 元素 |
.class.class | $(".intro.demo") | 所有 class="intro" 且 class="demo" 的元素 |
:first | $("p:first") | 第一个 <p> 元素 |
:last | $("p:last") | 最后一个 <p> 元素 |
:even | $("tr:even") | 所有偶数 <tr> 元素 |
:odd | $("tr:odd") | 所有奇数 <tr> 元素 |
:eq(index) | $("ul li:eq(3)") | 列表中的第四个元素(index 从 0 开始) |
:gt(no) | $("ul li:gt(3)") | 列出 index 大于 3 的元素 |
:lt(no) | $("ul li:lt(3)") | 列出 index 小于 3 的元素 |
:not(selector) | $("input:not(:empty)") | 所有不为空的 input 元素 |
:header | $(":header") | 所有标题元素 <h1> - <h6> |
:animated | 所有动画元素 | |
:contains(text) | $(":contains('W3School')") | 包含指定字符串的所有元素 |
:empty | $(":empty") | 无子(元素)节点的所有元素 |
:hidden | $("p:hidden") | 所有隐藏的 <p> 元素 |
:visible | $("table:visible") | 所有可见的表格 |
s1,s2,s3 | $("th,td,.intro") | 所有带有匹配选择的元素 |
[attribute] | $("[href]") | 所有带有 href 属性的元素 |
[attribute=value] | $("[href='#']") | 所有 href 属性的值等于 "#" 的元素 |
[attribute!=value] | $("[href!='#']") | 所有 href 属性的值不等于 "#" 的元素 |
[attribute$=value] | $("[href$='.jpg']") | 所有 href 属性的值包含以 ".jpg" 结尾的元素 |
:input | $(":input") | 所有 <input> 元素 |
:text | $(":text") | 所有 type="text" 的 <input> 元素 |
:password | $(":password") | 所有 type="password" 的 <input> 元素 |
:radio | $(":radio") | 所有 type="radio" 的 <input> 元素 |
:checkbox | $(":checkbox") | 所有 type="checkbox" 的 <input> 元素 |
:submit | $(":submit") | 所有 type="submit" 的 <input> 元素 |
:reset | $(":reset") | 所有 type="reset" 的 <input> 元素 |
:button | $(":button") | 所有 type="button" 的 <input> 元素 |
:image | $(":image") | 所有 type="image" 的 <input> 元素 |
:file | $(":file") | 所有 type="file" 的 <input> 元素 |
:enabled | $(":enabled") | 所有激活的 input 元素 |
:disabled | $(":disabled") | 所有禁用的 input 元素 |
:selected | $(":selected") | 所有被选取的 input 元素 |
:checked | $(":checked") | 所有被选中的 input 元素 |