• jQuery-选择器-查找标签


    一、jQuery选择器

    jQuery选择器就是帮助我们快速定位到一个或多个DOM节点

    1.1  ID选择器

    如果某个DOM节点有id属性,利用jQuery查找方式:

        <script src="jquery-3.3.1.js"></script>  <!--引入jQuery库-->
        <script type="text/javascript">
            //1. jQuery的语法: $("选择器").action
            var divclass = $("#div1"); 
            console.log(divclass);
        </script>

    首先,通过$("#div1")可以获得一个jQuery对象,他是类似一个数组,数组中每个元素都引用自DOM节点。通过$(".div1")[0]的方式获得一个DOM节点对象,通过DOM节点对象我们可以使用DOM属性和方法。

    如果$("#div1")没有查到标签的话,会返回[],jQuery选择器不会返回null或者undefined。 

     1.2 DOM对象和jQuery对象转化

    //1. jQuery的语法: $("选择器").action
    var divclass = $(".div1");
    
    var divDom = divclass.get(0);//获取数组中第一个DOM对象
    var divJq = $(divDom);//将DOM对象转换为jQuery对象
    console.log(divclass);

    1.3 按class查找

    //1. jQuery的语法: $("选择器").action
    var divclass = $(".div1");  // 类选择器
    console.log(divclass); // 得到一个类似数组的jQuery对象

    需要注意的是不要省略.在class名前$(".div1") 

    所有包含div1的DOM节点都会被返回

    1.4 按Tag查找

    只需要写上tag标签名即可。

    var ps = $('p'); // 返回所有<p>节点
    ps.length; // 数一数页面有多少个<p>节点

    1.5 多个选择器配合使用

    // 找到类名为div1的div标签
    var div1 = $("div.div1"); 
    console.log(div1);
    console.log(div1.get(0).innerText);

    div.div1 找到 类名为div1的div标签。

    1.6 所有元素选择器

    var all = $("*");// * 表示所有
    console.log(all);

    1.7 组合选择器

    组合查找就是把以上的简单选择器组合起来使用,

    var tmp = $(".div1,#id1");
    console.log("tmp:",tmp);

    选择出来的元素是按照他们在HTML中出现的顺序排列的。

    1.8层级选择器

    x,y可以是任意选择器

    $("x y");// x的所有后代y(子子孙孙)
    $("x > y");// x的所有儿子y(儿子)
    $("x + y")// 找到所有紧挨在x后面的y
    $("x ~ y")// x之后所有的兄弟y
    <!DOCTYPE html>
    <html>
    <head>
        <title>层级选择器</title>
    </head>
    <body>
    <div class="div1">
        <p class="div1-p1">
            div1下的儿子标签p    
        </p>
        <div class="div1-div1">
            div1下的第一个div儿子div1-div1
            <div class="div1-div11">
                div1下面的孙子
            </div>
        </div>
        <div class="div1-div2">
            div1下的第二个div儿子div1-div1
        </div>
    
    </div>
    
    <ul class="ul1">
        <li>1</li>
        <li>2</li>
        <li id="li3">3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>
    
    
    <script src="jquery-3.3.1.js"></script>
    <script type="text/javascript">
        // 1.div1的子子孙孙
        var div1 = $(".div1 div");//查找div1 所有的子子孙孙div标签  length = 3
        console.log(div1);
    
        // 2.查找div的儿子
        var div1Son = $(".div1>div"); //查找div1的所有儿子  length = 2
        console.log(div1Son);
    
        //3.查找紧挨着div1中p的div
        var div1_div1 = $(".div1-p1+div");  // length = 1
        console.log(div1_div1);
    
        //4.查看div1-p1的后面的同级兄弟
        var div1_div1 = $(".div1-p1~div");// length = 2
        console.log(div1_div1);
    </script>
    </body>
    </html>
    层级选择器demo

    1.9 属性选择器

    一个DOM节点除了id、class等基本的选择器之外,还可以通过属性来查找,比如在一个表单中按属性来查找

    var email = $('[name=email]'); // 找出<??? name="email">
    var passwordInput = $('[type=password]'); // 找出<??? type="password">
    var a = $('[items="A B"]'); // 找出<??? items="A B">
    
    <input type="text">
    <input type="password">
    <input type="checkbox">
    $("input[type='checkbox']");// 取到checkbox类型的input标签
    $("input[type!='text']");// 取到类型不是text的input标签

    1.通过属性来查找

    2.通过属性和属性值来查找

    <!DOCTYPE html>
    <html>
    <head>
        <title>属性选择器</title>
    </head>
    <body>
         <form class="test-form" target="_blank" action="#0" onsubmit="return false;">
            <legend>注册新用户</legend>
            <fieldset>
                <p><label>名字: <input name="name"></label></p>
                <p><label>邮件: <input name="email"></label></p>
                <p><label>口令: <input name="password" type="password"></label></p>
                <p><button type="submit">注册</button></p>
            </fieldset>
        </form> 
    
    <script src="jquery-3.3.1.js"></script>
    <script type="text/javascript">
        // 只判断属性是否存在,通过属性来查找
        var name1 = $('[name]'); // 查找包含属性name的标签
        console.log(name1);
    
        // 根据属性查找的语法 $("标签名[属性名 = '属性值'']"")  标签名可以不写
        var isname = $("[name = 'name']"); // 查找name = "name"的
        console.log(isname);
    
        var isname2 = $("input[name='name']");  // 标签名是可以省略的
        console.log(isname2);
    
        // 判断不是name=‘name’的标签
        var isname3 = $("input[name != 'name']"); // input不能省略,否则命中范围太大
        console.log(isname3);
        // 多个属性  $("[属性名 = '属性值1 属性值2']")
        // 查找 name 和 email的input
        var nameemail = $("[name='name'],[name='email']");
        var nameemail2 = $("input[name != 'password']");
        console.log(nameemail);
        console.log(nameemail2)
    
    
    </script>
    </body>
    </html>
    属性选择器demo
  • 相关阅读:
    jQuery源码dom ready分析
    jQuery的deferred对象详解(二)
    jQuery的deferred对象详解(一)
    javascript线程解释(setTimeout,setInterval你不知道的事)---转载
    前端工程精粹(二):静态资源管理与模板框架
    拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限。
    Page.User.Identity.Name获取不到结果
    水晶报表(web)表格信息展示
    Office导入导出组件权限配置汇总
    CSS hack样式兼容模式收藏
  • 原文地址:https://www.cnblogs.com/weihengblog/p/8883292.html
Copyright © 2020-2023  润新知