筛选
l 选择器可以完成功能,筛选提供相同函数。
选择器 :first
筛选 first()
l 对比:
$("div:first") 直接获得第一个div (永远只能操作第一个)
$("div").first() 先获得所有的div,从所有的中筛选出第一个。 (可以操作第一个,也可以操作所有)
1、过滤
eq(index | -index) 类似 :eq()
index:正数,从头开始获得指定索引的元素。这个元素的位置是从0算起。0表示第一个
-index:负数,从尾开始获得指定索引的元素。1算起。 -1表示最后一个
first() 第一个 :first
last() 最后一个 :last
is() 判断
hasClass() 判断是否是指定class 。<xxx class="my">
这其实就是 is("." + class)。
filter() 筛选出与指定表达式匹配的元素集合
not() 将指定内容删除
--------------------------------
has() 子元素是否有
slice(start , end) 截取元素,[2,4) --> 2,3
map() jQuery对象 拆分成 jQuery对象数组
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>05-可见性过滤选择器.html</title>
<!-- 引入jQuery -->
<script src="../js/jquery-1.8.3.js" type="text/javascript"></script>
<script src="./script/assist.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="./css/style.css" />
<script type="text/javascript">
$(document).ready(function(){
// <input type="button" value=" 选择索引值等于3的元素" id="b1"/>
$("#b1").click(function(){
$("div").eq(3).css("background-color","#ff0");
// $("div").eq(-1).css("background-color","#ff0").show();
});
// <input type="button" value=" 选择第一个div元素" id="b2"/>
$("#b2").click(function(){
$("div").first().css("background-color","#ff0");
});
// <input type="button" value=" 选择最后一个div元素" id="b3"/>
$("#b3").click(function(){
$("div").last().css("background-color","#ff0").show();
});
// <input type="button" value=" id=one div样式是否是one" id="b4"/>
$("#b4").click(function(){
alert($("div#one").hasClass("one"));
});
// <input type="button" value=" 选择class为none的所有div" id="b5"/>
$("#b5").click(function(){
// $("div.none").css("background-color","#ff0").show();
$("div").filter(".none").css("background-color","#ff0").show();
});
// <input type="button" value=" 样式为hide div 下一个兄弟是否是span" id="b6"/>
$("#b6").click(function(){
alert($("div.hide").next().is("span"));
});
// <input type="button" value=" 选择所有div中含有div的" id="b7"/>
$("#b7").click(function(){
$("div").has("div").css("background-color","#ff0");
});
// <input type="button" value=" 选择样式为one div 子元素中没有title属性的 父div" id="b8"/>
$("#b8").click(function(){
// $("div.one").not("[title]").css("background-color","#ff0");
// $("div.one").children().not("[title]").parent().css("background-color","#ff0");
//-----------
// $("div.one").children().filter("[title]").parent().css("background-color","#ff0");
$("div.one").not($("div.one").children().filter("[title]").parent()).css("background-color","#ff0");
});
// <input type="button" value=" 选择所以号为3,4的div" id="b9"/>
$("#b9").click(function(){
$("div").slice(3,5).css("background-color","#ff0");
});
});
</script>
</head>
<body>
<h3>可见性过滤选择器.</h3>
<button id="reset">手动重置页面元素</button>
<input type="checkbox" id="isreset" checked="checked"/><label for="isreset">点击下列按钮时先自动重置页面</label>
<br/><br/>
<input type="button" value=" 选择索引值等于3的元素" id="b1"/>
<input type="button" value=" 选择第一个div元素" id="b2"/>
<input type="button" value=" 选择最后一个div元素" id="b3"/>
<input type="button" value=" id=one div样式是否是one" id="b4"/>
<input type="button" value=" 选择class为none的所有div" id="b5"/>
<input type="button" value=" 样式为hide div 下一个兄弟是否是span" id="b6"/>
<input type="button" value=" 选择所有div中含有div的" id="b7"/>
<input type="button" value=" 选择样式为one div 子元素中没有title属性的div" id="b8"/>
<input type="button" value=" 选择所以号为3,4的div" id="b9"/>
<br /><br />
<!--文本隐藏域-->
<input type="hidden" value="hidden_1">
<input type="hidden" value="hidden_2">
<input type="hidden" value="hidden_3">
<input type="hidden" value="hidden_4">
<div class="one" id="one" >
id为one,class为one的div
<div class="mini">class为mini</div>
</div>
<div class="one" id="two" title="test" >
id为two,class为one,title为test的div.
<div class="mini" title="other">class为mini,title为other</div>
<div class="mini" title="test">class为mini,title为test</div>
</div>
<div class="one">
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini" title="tesst">class为mini,title为tesst</div>
</div>
<div style="display:none;" class="none">style的display为"none"的div</div>
<div class="hide">class为"hide"的div</div>
<span id="mover">正在执行动画的span元素.</span>
</body>
</html>
2、查找
<A>
<B>
<C></C>
<D></D>
<E></E>
<F></F>
</B>
</A>
B.children([...]) 获得所有的子元素。CDEF
A.find(D) 从指定的区域查询指定元素。D
D.next() 下一个兄弟。E
D.nextAll() 后面的所有兄弟。EF
E.prev() 上一个兄弟。D (previous)
E.prevAll() 前面的所有兄弟。CD
E.siblings() 所有兄弟。CDF
E.parent() 父元素。B
E.closest(A) 向上获得指定的父元素(含自己),如果获得返回一个对象,如果没有没有对象。
------------------------------
C.nextUntil(E) 获得后面所有兄弟,直到指定条件为止。DE
F.prevUntil(D) 获得前面所有兄弟,直到指定条件为止。DE
E.parents() 获得所有的父元素。AB
l closest和parents的主要区别是:
1,前者从当前元素开始匹配寻找,后者从父元素开始匹配寻找;
2,前者逐级向上查找,直到发现匹配的元素后就停止了,后者一直向上查找直到根元素,然后把这些元素放进一个临时集合中,再用给定的选择器表达式去过滤;
3,前者返回0或1个元素,后者可能包含0个,1个,或者多个元素。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>05-可见性过滤选择器.html</title>
<!-- 引入jQuery -->
<script src="../js/jquery-1.8.3.js" type="text/javascript"></script>
<script src="./script/assist.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="./css/style.css" />
<script type="text/javascript">
$(document).ready(function(){
// <input type="button" value=" 选择 id=two 所有子元素" id="b1"/>
$("#b1").click(function(){
$("#two").children().css("background-color","#ff0");
});
// <input type="button" value=" 选择 id=two 子元素title=other 元素 " id="b2"/>
$("#b2").click(function(){
$("#two").children("[title='other']").css("background-color","#ff0");
});
// <input type="button" value=" 选择 id=two 下一个兄弟" id="b3"/>
$("#b3").click(function(){
$("#two").next().css("background-color","#ff0");
});
// <input type="button" value=" 选择 id=two 后面的所有兄弟" id="b4"/>
$("#b4").click(function(){
$("#two").nextAll().css("background-color","#ff0").show();
});
// <input type="button" value=" 选择 id=two 上一个兄弟" id="b5"/>
$("#b5").click(function(){
$("#two").prev().css("background-color","#ff0").show();
});
// <input type="button" value=" 选择 id=two 前面的所有兄弟" id="b6"/>
$("#b6").click(function(){
$("#two").prevAll().css("background-color","#ff0");
});
// <input type="button" value=" 选择 id=two 所有兄弟" id="b7"/>
$("#b7").click(function(){
$("#two").siblings().css("background-color","#ff0").show();
});
// <input type="button" value=" 选择 id=two 父元素" id="b8"/>
$("#b8").click(function(){
$("#two").parent().css("background-color","#ff0");
});
// <input type="button" value=" 选择title='tesst' 父元素body元素" id="b9"/>
$("#b9").click(function(){
$("div[title='tesst']").closest("body").css("background-color","#ff0");
});
});
</script>
</head>
<body>
<h3>可见性过滤选择器.</h3>
<button id="reset">手动重置页面元素</button>
<input type="checkbox" id="isreset" checked="checked"/><label for="isreset">点击下列按钮时先自动重置页面</label>
<br/><br/>
<input type="button" value=" 选择 id=two 所有子元素" id="b1"/>
<input type="button" value=" 选择 id=two 子元素title=other 元素 " id="b2"/>
<input type="button" value=" 选择 id=two 下一个兄弟" id="b3"/>
<input type="button" value=" 选择 id=two 后面的所有兄弟" id="b4"/>
<input type="button" value=" 选择 id=two 上一个兄弟" id="b5"/>
<input type="button" value=" 选择 id=two 前面的所有兄弟" id="b6"/>
<input type="button" value=" 选择 id=two 所有兄弟" id="b7"/>
<input type="button" value=" 选择 id=two 父元素" id="b8"/>
<input type="button" value=" 选择title='tesst' 父元素body元素" id="b9"/>
<br /><br />
<!--文本隐藏域-->
<input type="hidden" value="hidden_1">
<input type="hidden" value="hidden_2">
<input type="hidden" value="hidden_3">
<input type="hidden" value="hidden_4">
<div class="one" id="one" >
id为one,class为one的div
<div class="mini">class为mini</div>
</div>
<div class="one" id="two" title="test" >
id为two,class为one,title为test的div.
<div class="mini" title="other">class为mini,title为other</div>
<div class="mini" title="test">class为mini,title为test</div>
</div>
<div class="one">
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini" title="tesst">class为mini,title为tesst</div>
</div>
<div style="display:none;" class="none">style的display为"none"的div</div>
<div class="hide">class为"hide"的div</div>
<span id="mover">正在执行动画的span元素.</span>
</body>
</html>
3、串联
l 将多条语句,改成一条。(得瑟代码)
A.add(B) 将A和B组合一个对象。类型 $("A,B")
andSelf() :将之前对象添加到操作集合中
A.children().andSelf()
A 孩子 孩子和A
end() :回到最近的一个"破坏性"操作之前
A.children().children().end().end()
A 孩子 孙子 孩子 A
--------------------
contents() 获得所有的子节点(子元素 和 文本)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>05-可见性过滤选择器.html</title>
<!-- 引入jQuery -->
<script src="../js/jquery-1.8.3.js" type="text/javascript"></script>
<script src="./script/assist.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="./css/style.css" />
<script type="text/javascript">
$(document).ready(function(){
// <input type="button" value=" 选择 id=one和two 的div" id="b1"/>
$("#b1").click(function(){
$("#one").add("#two").css("background-color","#ff0");
});
// <input type="button" value=" 选择id=one 所有的孩子,以及one自己" id="b2"/>
$("#b2").click(function(){
$("#one").children().andSelf().css("background-color","#ff0");
// $("#one").children().add("#one").css("background-color","#ff0");
});
// <input type="button" value=" 选择id=one 所有的孩子,设置颜色为红,设置one自己为黄" id="b3"/>
$("#b3").click(function(){
// $("#one").children().css("background-color","#f00").end().css("background-color","#ff0");
$("#one").children().css("background-color","#f00").parent().css("background-color","#ff0");
$("#one").css("background-color","#ff0").children().css("background-color","#f00");
});
// <input type="button" value=" 获得id=two 子节点个数" id="b4"/>
$("#b4").click(function(){
alert($("#two").contents().length);
});
});
</script>
</head>
<body>
<h3>可见性过滤选择器.</h3>
<button id="reset">手动重置页面元素</button>
<input type="checkbox" id="isreset" checked="checked"/><label for="isreset">点击下列按钮时先自动重置页面</label>
<br/><br/>
<input type="button" value=" 选择 id=one和two 的div" id="b1"/>
<input type="button" value=" 选择id=one 所有的孩子,以及one自己" id="b2"/>
<input type="button" value=" 选择id=one 所有的孩子,设置颜色为红,设置one自己为黄" id="b3"/>
<input type="button" value=" 获得id=two 子节点个数" id="b4"/>
<br /><br />
<!--文本隐藏域-->
<input type="hidden" value="hidden_1">
<input type="hidden" value="hidden_2">
<input type="hidden" value="hidden_3">
<input type="hidden" value="hidden_4">
<div class="one" id="one" >
id为one,class为one的div
<div class="mini">class为mini</div>
</div>
<div class="one" id="two" title="test" >
id为two,class为one,title为test的div.
<div class="mini" title="other">class为mini,title为other</div>
<div class="mini" title="test">class为mini,title为test</div>
</div>
<div class="one">
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini" title="tesst">class为mini,title为tesst</div>
</div>
<div style="display:none;" class="none">style的display为"none"的div</div>
<div class="hide">class为"hide"的div</div>
<span id="mover">正在执行动画的span元素.</span>
</body>
</html>