jQuery的常用选择器

一、id选择器
id选择器是基本的选择器,jQuery内部使用JavaScript函数document.getElementById()来处理id的获取(原生语法的支持总是非常高效的,所以在操作DOM的获取上,如果能采用id的话尽量考虑用这个选择器 另外注意id是唯一的)
例如下面这段代码中所示

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>id选择器的练习</title>
    <style>
    div {
        width: 100px;
        height: 90px;
        float: left;
        padding: 5px;
        margin: 5px;
        background-color: #EEEEEE;
    }
    </style>
    <script src=></script>
</head>

<body>   
	 <div id="world">
    	<p>id="world"</p>
    	<p>选中</p>
    </div>
    <div id="hello">
        <p>id="hello"</p>
        <p>jQuery选中</p>
    </div>
    <div id="hello">
        <p>id="hello"</p>
        <p>jQuery未选中</p>
    </div>

    <script type="text/javascript">
       //通过原生方法处理
        var div = document.getElementById('world');
        div.style.border = "3px solid blue";
    </script>

    <script type="text/javascript">
    	//通过jQuery直接传入id
    	//id的唯一,只选择到了第一个匹配的id为hello的div节点
        $("#hello").css("border", "3px solid red");
    </script>

</body>

</html>

实现效果如下图所示:
在这里插入图片描述
二、类选择器
类选择器,相对于id选择器来说,效率相对会低一点,但是优势就是可以多选,同样在jQuery的实现上,对于类选择器,如果浏览器支持的话,jQuery使用javascript的原生getElementByClassName()函数来实现的
下面来说明一个原生getElementByClassName()函数实现代码与jQuery实现代码的比较

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>class选择器的练习</title>
    <style>
        div {
            width: 100px;
            height: 90px;
            float: left;
            padding: 5px;
            margin: 5px;
            background-color: #EEEEEE;
        }
    </style>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>
<body>   
	 <div class="world">
    	<p>class="world"</p>
    	<p>选中</p>
    </div>   
     <div class="world">
        <p>class="world"</p>
        <p>选中</p>
    </div>

    <div class="hello">
        <p>class="hello"</p>
        <p>jQuery选中</p>
    </div>
    <div class="hello">
        <p>class="hello"</p>
        <p>jQuery选中</p>
    </div>

    <script type="text/javascript">
        //通过原生方法处理
        //样式是可以多选的,所以得到的是一个合集
        //需要通过循环给合集中每一个元素修改样式
        var divs = document.getElementsByClassName('world');
        for (var i = 0; i < divs.length; i++) {
            divs[i].style.border = "3px solid blue";
        }
    </script>

    <script type="text/javascript">
        //通过jQuery直接传入class
        //class选择器可以选择多个元素
        $(".hello").css("border", "3px solid red");
    </script>
</body>

</html>

实现效果如下:
在这里插入图片描述
三、元素选择器
根据给定(html)标记名称选择所有的元素
描述:
( " e l e m e n t " ) 搜 索 指 定 元 素 标 签 名 的 所 有 节 点 , 这 个 是 一 个 合 集 的 操 作 。 同 样 也 有 原 生 方 法 g e t E l e m e n t s B y T a g N a m e ( ) 函 数 支 持 在 下 面 代 码 中 有 两 种 实 现 方 式 第 一 种 : 通 过 g e t E l e m e n t s B y T a g N a m e 方 法 得 到 页 面 所 有 的 < d i v > 元 素 v a r d i v s = d o c u m e n t . g e t E l e m e n t s B y T a g N a m e ( ′ d i v ′ ) ; d i v s 是 d o m 合 集 对 象 , 通 过 循 环 给 每 一 个 合 集 中 的 < d i v > 元 素 赋 予 新 的 b o r d e r 样 式 第 二 种 : ("element") 搜索指定元素标签名的所有节点,这个是一个合集的操作。同样也有原生方法getElementsByTagName()函数支持 在下面代码中有两种实现方式 第一种:通过getElementsByTagName方法得到页面所有的<div>元素 var divs = document.getElementsByTagName('div'); divs是dom合集对象,通过循环给每一个合集中的<div>元素赋予新的border样式 第二种: ("element")getElementsByTagName()getElementsByTagName<div>vardivs=document.getElementsByTagName(div);divsdom<div>border(“p”)选取所有的

元素,通过css方法直接赋予样式

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title></title>
    <style>
    div {
        width: 100px;
        height: 90px;
        float: left;
        padding: 5px;
        margin: 5px;
        background-color: #EEEEEE;
    }
    </style>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>
<body>
    <div class="world">
        <p>class="world"</p>
        <p>选中</p>
    </div>
    <div class="world">
        <p>class="world"</p>
        <p>选中</p>
    </div>
    <div class="hello">
        <p>class="hello"</p>
        <p>jQuery选中</p>
    </div>
    <div class="hello">
        <p>class="hello"</p>
        <p>jQuery选中</p>
    </div>

    <script type="text/javascript">
    //通过原生方法处理
    //获取到所有的节点标记名为div的元素
    //给每一个div加上蓝色的边框
    var divs = document.getElementsByTagName('div');
    for (var i = 0; i < divs.length; i++) {
        divs[i].style.border = "3px solid blue";
    }
    </script>
    <script type="text/javascript">
    //通过jQuery直接传入标签名p
    //标签是可以多个的,所以得到的同样也是一个合集
    $("p").css("border", "3px solid red");
    </script>
</body>

</html>

效果图如下:
在这里插入图片描述
四、全选择器
$("*")
抛开jQuery,如果要获取文档中所有的元素,通过document.getElementsByTagName()中传递可以获取到(但是这种方法实现,就需要考虑浏览器的兼容性)

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>allselect</title>
    <style>
    div {
        width: 100px;
        height: 90px;
        float: left;
        padding: 5px;
        margin: 5px;
        background-color: #EEEEEE;
    }
    </style>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>
<body>
    <div class="world">
        <p>class="world"</p>
        <p>选中</p>
    </div>
    <div class="world">
        <p>class="world"</p>
        <p>选中</p>
    </div>
    <div class="hello">
        <p>class="hello"</p>
        <p>jQuery选中</p>
    </div>
    <div class="hello">
        <p>class="hello"</p>
        <p>jQuery选中</p>
    </div>

    <script type="text/javascript">
        //获取页面中所有的元素
        var elements1 = document.getElementsByTagName('*');
    </script>
    <script type="text/javascript">
        //获取页面中所有的元素
       var elements2 = $("*")      ;
        //原生与jQuery方法比较
        //===表示数据和类型都相等
        if(elements2.length === elements1.length){
           elements2.css("border","1px solid red");
        }
    </script>
</body>

</html>

效果图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值