jquery选择器

jquery的选择器


首先理解什么是DOM,它是Document Object Model的缩写,简单来说,就是浏览器加载HTML时生成的树状结构。如下图:

这里写图片描述

浏览器在加载DOM时如下图:浏览器第一步加载HTML到DOM,但是有时候,javascript有时候会在DOM加载完之前就运行了,然而这时候DOM是没有加载完的所以,要让DOM加载完毕再执行js代码,就需要:

$(document).ready(function(){
    代码块。。。
});

这里写图片描述


jquery基础选择器

  • id选择器 格式:$(“#id”)

  • element选择器 格式:$(“element”)

  • .class选择器 格式:$(“.class”)

  • .*选择器 格式:$(““) 注意:由于使用*选择器获取的是全部元素,因此,有些浏览器将会比较缓慢,这个选择器也需要谨慎使用。*

  • sele1,sele2,sele3选择器:每个之间用逗号隔开,哪种类型都可以如$("#id,.class,myname") 格式:$(“sele1,sele2,sele3”)

  • ance desc选择器:ance参数(ancestor祖先的简写)表示父元素;desc参数(descendant后代的简写)表示后代元素,即包括子元素、孙元素等等。 格式:$(“ance desc”), $(“div label”)//获取的是div下的所有label元素,包括子辈和孙辈

  • 总结

  • 1.$(“div span”)获取div下的所有span子元素

  • 2.$(“div>span”)获取div下的所有直接子元素,没有孙子辈

  • 3.$(“div+span”)获取div相邻的span元素

  • 4.$(“div~span”)获取div相邻的所有span元素

jquery过滤选择器

: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元素,a元素中的显示”更多”字符.
  • 当点击”更多”链接时,自身内容变为”简化”,同时,ul元素中显示全部的li元素.

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

    代码答案
    <!DOCTYPE html>
        <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title>挑战题</title>
                <script src="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>
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值