为了账号安全,请及时绑定邮箱和手机立即绑定

Jquery教程 2.jquery的过滤性选择器

标签:
JQuery
  1. :first过滤器:$("li:last").css("background-color", "red") 得到li元素的最后一个子节点。

    $("li:last")<==>$("li").last(); 注:这两个的效果相同,但是后者速度更快,推荐用后者

    $("li:first")<==>$("li").first();

    $("li").first().next(); 方法链,first()的下一个元素

    $("li").first().next().prev();  prev()上一个元素

    $("li").first().parent(); 找到li的父元素


    $("div span")<==>$("div").find("span");

    $("div span")<==>$("div").children("span")


2.:eq(index)选择器:如果想从一组标签元素数组中,灵活选择任意的一个标签元素

  $("li:eq(2)").css("background-color", "#60F");从一组li元素中,选择第三个元素,从0开始


3.:contains(text)选择器:有时候我们可能希望按照文本内容来查找一个或多个元素, 它的功能是选择指定字符串的全部元素,它通常与其他元素结合使用

 $("li:contains('jQuery')").css("background", "green"); 在一组li元素中查找文本是jQuery关键字的元素


4.:has(select)选择器:获取选择器中包含指定元素名称的全部元素,其中selector参数就是包含的元素名称,是被包含元素。

 $("li:has('label')").css("background-color", "blue"); 在一组li元素中查找带label元素



5.:hidden选择器:功能是获取全部不可见的元素,这些不可见的元素中包括type属性值为hidden的元素。

 var $strHTML = $("input:hidden").val(); 查找type="hidden"的input元素



6.:visible选择器:与:hidden过滤选择器相反,:visible过滤选择器获取的是全部可见的元素,也就是说,只要不将元素的display属性值设置为“none”,那么,都可以通过该选择器获取

 

<li style="display:none">橘子</li><li style="display:block">香蕉</li><li style="display:">葡萄</li>$("li:visible").css("background-color","blue");//获取display:none的元素



7.[attribute=value],[attribute!=value],[attribute*=value]选择器:功能是获取与属性名和属性值完全相同的全部元素,其中[]是专用于属性选择器的括号符,参数attribute表示属性名称,value参数表示属性值。[attribute!=value]意思相反,而[attribute*=value]是获取属性值中包含指定内容的全部元素。


<li title="蔬菜">茄子</li><li title="水果">香蕉</li><li title="蔬菜">芹菜</li><li title="水果">苹果</li><li title="水果">西瓜</li>$("li[title='蔬菜']").css("background-color", "green");$("input[type='radio']:checked").removeAttr("checked"); //获取属性type="radio"的input,并检查是否选中


8.:first-child,:last-child选择器:使用:first-child子元素过滤选择器则可以获取每个父元素中返回的首个子元素,它是一个集合,常用多个集合数据的选择处理


练习题:

题目:在页面中,添加一个<ul>元素,里面放置多个(至少7个以上)的<li>元素,此外,再添加一个<a>元素.


任务:

  初始时:<ul>元素中仅显示5个<li>元素,其中包含还包括最后一个<li>元素,<a>元素中的显示"更多"字符.

  当点击"更多"链接时,自身内容变为"简化",同时,<ul>元素中显示全部的<li>元素.

  当点击"简化"链接时,自身内容变为"更多",同时,<ul>元素中仅显示包含最后一个<li>元素在内的5个元素.


代码答案:

<!DOCTYPE html><html>    <head>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />        <title>挑战题</title>        <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>    </head>        <body>        <ul>            <li style="display:none">111</li>            <li style="display:none">222</li>            <li>333</li>            <li>444</li>            <li>555</li>            <li>666</li>            <li>777</li>        </ul>                <script>        $(function(){            $("a").click(function(){                if($("a").html() == '更多') {                    $("a").html("简化");                    $("li").show();                } else {                    $("a").html("更多");                    $("li:not(:gt(1))").hide();                }              });        })                    </script>            </body></html>


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消