从前文的实例中,我们按到jQuery语句可以链接在一起,这不仅可以缩短代码长度,而且很多时候可以实现特殊的效果。
<script type="text/javascript">
$(function() {
$("div").addClass("css1").filter(function(index) {
return index == 1 || $(this).attr("id") == "fourth";
}).addClass("css2");
});
</script>
以上代码为整个<div>列表增加样式css1,然后再进行筛选,再为筛选的元素单独增加css2样式。如果不采用jQuery,实现上述的效果将非常麻烦。
在jQuery链中,后面的操作都是以前面的操作结果为对象的,如果希望操作对象为上一步的对象,则可以使用end()方法。
用end()方法来控制jQuery链。
<script type="text/javascript">
$(function() {
$("p").find("span").addClass("css1").end().addClass("css2");
});
</script>
<p>Hello,<span>how</span>are you?</p>
<span>very nice,</span>Thank you.
以上代码在<p>中搜索<span>标记,然后添加风格css1,利用end()方法将操作对象往回设置为$("p")并添加样式风格css2.
另外,还可以通过andSelf()将前面两个对象进行组合后共同处理。
用andSelf()方法控制jQuery链。
<script type="text/javascript">
$(function() {
$("div").find("p").addClass("css1").andSelf().addClass("css2");
});
</script>
<div>
<p>第一段</p>
<p>第二段</p>
</div>
以上jQuery代码首先在<div>中搜索<p>标记,添加css1,这个风格只对<p>标记有效,然后利用andSelf()方法将<div>和<p>组合在一起,然后添加样式css2,这个风格对<div>和<p>均有效。
效果:
<div class="css2">
<p class="css1 css2">第一段</p>
<p class="css1 css2">第二段</p>
</div>