jQuery--jQuery和DOM对象互相转化、选择器

1. jQuery的简介
是一个JavaScript函数库
2. jQuery的优势

  • 轻量级
  • 强大的选择器
  • 出色的DOM操作封装
  • 可靠的事件处理机制
  • 出色的浏览器兼容性

3. jQuery的使用(1.12版本)
<script src="jquery.min.js"></script>

4.jQuery对象和DOM对象
(1)jQuery对象转为DOM对象

  • jQuery对象是一个数组对象,通过[index]方法得到DOM对象。如:$("#text")[0]
  • 使用jQuery中的get(index)方法,如:$("#text").get(0)

例子:

<body>
<p id="p1">段落一</p>
<p id="p2">段落二</p>
<input type="button" value="使用DOM修改第一个段落" onclick="change()">
<input id="btn1" type="button" value="使用JQuery修改第一个段落"><br/>
<input id="btn3" type="button" value="JQuery对象转为DOM对象">
<script>
    //使用DOm修改第一个段落
    function change(){
        var a=document.getElementById("p1");
        a.innerHTML="使用DOM修改第一个段落";
    }
    //
    $(document).ready(function(){
        //使用jQuery修改段落
        $("#btn1").click(function(){
            $("#p1").html("使用JQuery修改段落");
        });
        //JQuery对象转为DOM
        $("#btn3").click(function(){
            //(1) jQuery 对象是一个数组对象, 可以通过 [index] 的方法得到对应的 DOM对象.
           // $("#msg")[0]
            //(2) 使用 jQuery 中的 get(index) 方法得到相应的 DOM 对象
            //$("#msg").get(0)
            var dom_b=$("#p2")[0];//对象[0]从JQ对象中获取DOM对象
            dom_b.innerHTML="JQuery对象转为DOM";
        });
    });
</script>
</body>


 (2)DOM对象转为jQuery对象

 

  • $(DOM对象名称),如:$(document.getElementById("div"))

例子:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JQuery对象和DOM对象</title>
    <script src="jquery.js"></script>
</head>
<body onload="load()">
<p id="p1">段落一</p>
<p id="p2">段落二</p>
<input type="button" value="使用DOM修改第一个段落" onclick="change()">
<input id="btn1" type="button" value="使用JQuery修改第一个段落"><br/>
<input id="btn2" type="button" value="DOM对象转为JQuery对象">

<script>
    //使用DOm修改第一个段落
    function change(){
        var a=document.getElementById("p1");
        a.innerHTML="使用DOM修改第一个段落";
    }
    //
    $(document).ready(function(){
        //使用jQuery修改段落
        $("#btn1").click(function(){
            $("#p1").html("使用JQuery修改段落");
        });
        //DOM对象转为JQuery
        $("#btn2").click(function(){
            var b=document.getElementById("p2");
            var jq_b=$(b);//$(DOM对象)
            //$(DOM 对象后产生的对象)
            jq_b.html("DOM对象转为JQuery");
        });
</script>
</body>
</html>

5. jQuery的选择器
(1)基本选择器

  • * 如:$("*"),所有元素
  •  #id属性; 如:$("#lastname")中,所有id="lastname" 的元素
  •  .class属性;如: $(".intro") 中,所有 class="intro" 的元素
  • element 如:$("p") 所有 <p> 元素
  •  .class属性 .class属性  如:$(".intro.demo") 所有 class="intro" 且 class="demo" 的元素

 例子:

<p>H5edu.cn</p>
<p>你好</p>
<div><img src="image/logo.png" width="30%" height="30%"></div>
<input type="button" id="btn1" value="p标签隐藏"><br/>
<input type="button" id="btn2" value="全部显示"><br>
<input type="button" id="btn3" value="div,p隐藏">
<script>
    $(document).ready(function(){
        $("#btn1").click(function(){
            $("p").hide();
        });
        $("#btn2").click(function(){
            $("*").show();//匹配所有的元素
        });
        $("#btn3").click(function(){
            $("div,p,#btn1").hide();//集合元素,可以写标签,也可以加id属性,多个中间用,号分开
        });
    });
</script>

(2)层次选择器

  • $("class/id 元素"),查询class/id后的所有元素
  • $("class/id>元素") ,查询class/id中所有的子节点(一级)
  • $("class/id +next"),选取class/id元素的下一个元素
  • $("class/id ~元素"),选取class/id中所有的元素

例子:

<h2>层次选择器</h2>
<div id="div1">
    <p id="p1">段落</p>
    <h2>张新丁</h2>
    <h2>你好</h2>
    <div id="div2">
        <img src="image/logo.png" width="30%" height="30%">
        <h2>层次选择器</h2>
        <img src="image/logo.png" width="30%" height="30%">
        <img src="image/logo.png" width="30%" height="30%">
    </div>
    <p id="p2">
        <img src="image/logo.png" width="30%" height="30%">
    </p>
</div>
<script>
    $(function(){//简写:$(document).ready(function(){});
        //div1 H2是指div1中所有的H2
        $("#div1 H2").css("color","red");
        //#div1>H2表示div1中的所有的直接子节点(一级)
        $("#div1>H2").css("background-color","pink");
        //+号表示后面的一个元素
        $("#p1+H2").css("border","1px solid blue");
        //h2中所有的img
        $("h2~img").css({"width":"20%","height":"20%","border":"dashed 1px green"});
    });
</script>

(3)过滤选择器

  1. 基本过滤选择器:
  • :first,匹配选择第一个元素
  • :last匹配选择最后一个元素
  • :not(selector)去除所有匹配元素
  • :odd匹配所有奇数的元素
  • :even匹配素偶数的元素
  • :eq(index)匹配一个指定的索引值值的元素
  • :gt(index)匹配大于指定所有值的元素
  • :lt(index)匹配小于指定所有值的元素
  • .header选择所有h1-h6的head标签
  • :animated匹配正在执行的动画效果的元素

例子:

<h3>过滤选择器的使用</h3>
<ul>
    <li>:first匹配选择第一个元素</li>
    <li>:last匹配选择最后一个元素</li>
    <li>:not(selector)去除所有匹配元素</li>
    <li>:odd匹配所有奇数的元素</li>
    <li>:even匹配所有偶数的元素</li>
    <li>:eq(index)匹配一个指定的索引值的元素</li>
    <li>:gt(index)匹配大于指定所有值的元素</li>
    <li>:lt(index)匹配小于指定所有值的元素</li>
    <li>.header选择所有h1-h6的head标签</li>
    <li>:animated匹配正在执行的动画效果的元素</li>
</ul>
<table>
    <tr><td>HTML</td></tr>
    <tr><td>CSS</td></tr>
    <tr><td>JavaScript</td></tr>
    <tr><td>CSS3</td></tr>
    <tr><td>HTML5新增标签</td></tr>
</table>
<script>
    //设置所有的li的颜色
    $(function(){
        $("li").css("color","#999");
        //设定第一个
        $("li:first").css("color","red");
        //设定最后一个
        $("li:last").css("color","red");
        //设定奇数
        $("li:odd").css("background-color","pink");
        //设定偶数
        $("li:even").css("background-color","#abcdef");
        //设定表隔行换色(奇数和偶数)
        $("tr:odd").css("background-color","cyan");
        $("tr:even").css("background-color","purple");

    });
</script>

2. 内容过滤选择器

  • $("id/class/标签  :contains('文本')"),选取文本内容的text元素
  • $("id/class/标签  :has('标签')"),选取含有标签的所有元素

例子:

<div><a href="">欢迎来到张新丁的个人主页,张新丁的个人空间</a></div><br/>
<div><p>邮箱:zhang@qq.com</p></div>
<script>
    $(function(){
        //:contains查找所有包含“张鑫”的a元素
        $("a:contains('张新')").css("color","red");
        //has匹配含有该元素
        $("div:has('p')").css("border","1px solid red");
    });
</script>

3. 可见性选择器

  • :hidden,选取所有不可见的元素
  • :visible,选取所有可见元素

例子:

<input type="hidden" value="隐藏">
<input type="text" value="文本框">
<input type="button" id="btn1" value="获取hidden对象的value">
<input type="button" id="btn2" value="获取可见对象text内容">
<script>
    $(function(){
        $("#btn1").click(function(){
            //hidden是隐藏对象过滤器
            alert($("input:hidden").val());
        });

        $("#btn2").click(function(){
            //visible是显示对象的过滤器
            alert($("input:visible").val());
        });
    });
</script>

4.属性过滤器

  • [attribute] $("[href]") 所有带有 href 属性的元素
  • [attribute=value] $("[href='#']") 所有 href 属性的值等于 "#" 的元素
  • [attribute!=value] $("[href!='#']") 所有 href 属性的值不等于 "#" 的元素
  • [attribute$=value] $("[href$='.jpg']") 所有 href 属性的值包含以 ".jpg" 结尾的元素


例子:

<img src="image/logo.png" width="30%" height="30%"><br>
<img src="image/logo.png" width="40%" alt="test" ><br>
<img src="image/logo.png" width="20%" alt="你好">
<script>
    $(function(){
        //选取有height属性的元素
        $("img[height]").css("border","1px solid red");
        //alt*='你好'选取指定属性值为‘你好’的元素
        $("img[alt*='你好']").css("border","1px dashed blue");

    });
</script>

5.子元素过滤器

  • :nth-child(even/odd): 能选取每个父元素下的索引值为偶(奇)数的元素
  • :nth-child(2): 能选取每个父元素下的索引值为 2 的元素
  • :nth-child(3n): 能选取每个父元素下的索引值是 3 的倍数 的元素
  • :nth-child(3n + 1): 能选取每个父元素下的索引值是 3n + 1的元素
  • :first:child: 获取每个父元素的第一个元素
  • :last:child: 获取每个父元素的最后一个元素
  • :only:child: 如果某一元素是它父元素中唯一的子元素,那么将匹配

例子:

<div>
    <h3>学习HTML5路线图</h3>
    <p>1.HTML</p>
    <p>2.CSS</p>
    <p>3.JavaScript</p>
    <p>4.JQuery</p>
</div>
<script>
    $("div p").css("color","red");
    $("div p:nth-child(5)").css("color","blue");
    //nth-child(2n-1): 能选取每个父元素下的索引值为 2n-1 的元素
    $("div p:nth-child(2n-1)").css("color","yellow");
</script>

6.表单对象属性过滤器
例子:

姓名<input type="text" value=""><br>
性别<input type="radio" value="1" name="sex">男
<input type="radio" value="2" name="sex">女<br>
<input type="button" value="获取">
<script>
    $(function(){
        $(":button").css({"width":"100%","height":"80%"});
        $(":button").click(function(){
            alert($(":text").val());
            alert($(":radio:checked").val());
        });
    });
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值