Jquery的使用

使用Jquery的准备工作:

    1.把Jquery文件引入到项目中(注意:Jquery文件有很多迭代版本,不一定要和这里的版本一样)

 

   2.在html中引入Jquery文件

<!-- 2、引入Jquery -->
<script type="text/javascript" src="../jquery/jquery-1.11.2.min.js"></script>

 

一、万能的$

  $是一个对象,也是一个方法

  1.1直接获取页面的元素

    $("选择器") 例:$("#id值")

<script type="text/javascript">
    $(function() {
        $("#btn");//获取id为btn的标签
        $(".btn");//获取所有class为btn的标签
        $("p");//获取所有p标签
        $("input[name=hobbies]");//获取所有name属性为hobbies的input标签
        $("tr:even");//获取所有下标为偶数的tr标签
     ......
}); </script>

 

  1.2 dom就绪后执行相应的代码

    window.onload = function(){...} -> 页面加载完毕后执行(所有数据请取完毕)

window.onload = function(){
    //1.可以获取当前页面中的元素
    var mydiv = $("#mydiv");
    console.debug(mydiv);
}

    $(function(){...}) -> dom加载就绪(只需要读取到标签与属性即可【速度更快,性能更好】)

$(function(){
      //1.可以获取当前页的元素
      //  jQuery的方案获取的元素
      var mydiv = $("#mydiv");
      console.debug(mydiv);
})

 

  1.3 原生的dom对象和jQuery对象互转

    jQuery对象的功能更加强大 【object{...}】,是一个伪数组(它不是数组,但是可以当作数组用,数组中装的就是原生对象)

    1、把原生对象转成jQuery对象

$(function(){
   console.debug($(mydivDom));
})

 

    2、把jQuery对象转成原生对象

$(function(){
     console.debug(mydiv[0]);
       console.debug(mydiv.get(0)); 

})

 

  1.4 直接创建dom元素 原本:document.createElement("div");

var div = $("<div><span>sdfasdfsdf</span></div>");


  1.5 直接调用相应的方法 $.get(..)/$.parseJSON(..)

 

console.debug($.isNumeric(5));
console.debug($.isNumeric("5z"));

 

二、选择器

  2.1基本选择器(id,class,标签,多选择器)

 

<script type="text/javascript">
$(function(){
    
    //id选择器,必需加一个#
    console.debug($("#monkey"));
    //class(类)选择器,必需加一个.
    console.debug($(".animal"));
    //标签选择器
    console.debug($("li"));
    //* 匹配所有元素
    console.debug($("*"));
    //多选择器(可以组合所有选择器)
    console.debug($("#monkey,.snake"));
})
</script>

 

  2.1层级选择器(父子,后代)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 引入一个jQuery文件 -->
<script type="text/javascript" src="jquery/jquery-1.11.2.js"></script>
<script type="text/javascript">
    $(function(){
        //拿到 #book这个选择器里面的所有li (后代选择器)
        console.debug($("#book li"))
        //拿到 #book这个选择器里面 第一层li (儿子选择器)
        console.debug($("#book>li"));
    })
</script>
</head>
<body>
    <ul id="book">
        <li>
            四大名著
                <ul>
                    <li>西游记</li>
                    <li>水浒传</li>
                    <li>三国演义</li>
                    <li>红楼梦</li>
                </ul>
        </li>
        <li>西施</li>
        <li>貂蝉</li>
        <li>王昭君</li>
        <li>杨玉环</li>
    </ul>
    <ul>
        <li class="animal">白龙马</li>
        <li class="animal" id="monkey">孙悟空</li>
        <li class="animal">猪八戒</li>
        <li>沙悟净</li>
    </ul>
    <ul>
        <li class="snake">黄鸟</li>
        <li class="snake">白鸟</li>
        <li>绿鸟</li>
        <li>红鸟</li>
    </ul>
</body>
</html>

  2.3伪类选择器

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 引入一个jQuery文件 -->
<script type="text/javascript" src="jquery/jquery-1.11.2.js"></script>
<script type="text/javascript">
    $(function(){
    //伪类选择器
    //:first -> 只拿第一个元素
    console.debug($("li:first"));
    //:eq(index) -> 确定拿第几个 index:下标
    console.debug($("li:eq(3)"));
    })
</script>
</head>
<body>
    <ul id="book">
        <li>
            四大名著
                <ul>
                    <li>西游记</li>
                    <li>水浒传</li>
                    <li>三国演义</li>
                    <li>红楼梦</li>
                </ul>
        </li>
        <li>西施</li>
        <li>貂蝉</li>
        <li>王昭君</li>
        <li>杨玉环</li>
    </ul>
    <ul>
        <li class="animal">白龙马</li>
        <li class="animal" id="monkey">孙悟空</li>
        <li class="animal">猪八戒</li>
        <li>沙悟净</li>
    </ul>
    <ul>
        <li class="snake">黄鸟</li>
        <li class="snake">白鸟</li>
        <li>绿鸟</li>
        <li>红鸟</li>
    </ul>
</body>
</html>

  2.4属性选择器 -> $(div[name])/$(div[name=xx])

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 引入一个jQuery文件 -->
<script type="text/javascript" src="jquery/jquery-1.11.2.js"></script>
<script type="text/javascript">
    $(function(){
    //属性选择器
    console.debug($("li[class]"));
    console.debug($("li[name='mei']"));
    })
</script>
</head>
<body>
    <ul id="book">
        <li>
            四大名著
                <ul>
                    <li>西游记</li>
                    <li>水浒传</li>
                    <li>三国演义</li>
                    <li>红楼梦</li>
                </ul>
        </li>
        <li name="xi">西施</li>
        <li name="diao">貂蝉</li>
        <li name="zhao">王昭君</li>
        <li>杨玉环</li>
    </ul>
    <ul>
        <li class="animal">白龙马</li>
        <li class="animal" id="monkey">孙悟空</li>
        <li class="animal">猪八戒</li>
        <li>沙悟净</li>
    </ul>
    <ul>
        <li class="snake">黄鸟</li>
        <li class="snake">白鸟</li>
        <li>绿鸟</li>
        <li>红鸟</li>
    </ul>
</body>
</html>

 

三、事件注册

  $(元素).click(function(){...})

  $(元素).bind("click",function(){...}) / unbind

  $(元素).on("click",function(){...}) / off

=============事件委派===========

  $("#userTbody").on("click",".del",function(){})

  监听tbody的点击事件,当你点击的位置(元素)符合 .del -> 就触发事件

      //on("绑定的事件","需要满足的条件",满足条件执行的函数(方法))
        $("#userTbody").on("click",".del",function(){
            //parent():找到元素的父元素
            //$(this).parent().parent().remove();
            //closest:从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素。。
            $(this).closest("tr").remove();
        })

 

四、列举

  1、each() -> 遍历咱们的元素

    jQuery对象.each(function(index,ele){

      //index:遍历的下标

      //ele:遍历的每一个元素

    })

  2、length -> 一个jQuery元素(伪数组)的长度

    jQuery对象.length/jQuery.size()

  3、attr/prop -> 获取与设置某个元素的属性

    prop:支持多选与单选(attr支持有问题)

    var 属性值 = jQuery元素.attr/prop("属性名");

    jQuery元素.attr/prop("属性名","属性值");

  4、HTML代码/文本/值

    var html = jQuery对象.html() -> 获取一个对象中的所有html的内容

    jQuery对象.html("<div>xxx</div>") -> 设置一个对象中的所有html的内容

    //val只用于设置表单元素(input,textarea,select)的值

    var html = jQuery对象.val()

    jQuery对象.val("<div>xxx</div>")

  5、css -> 获取与设置元素的某个样式

    jQuery元素.css("样式名","样式值");

    jQuery元素.css("background-color","red");

  6、文本操作

    jQuery元素.append("元素"); -> 把括号中的元素放到jQuery元素中

    jQuery元素.appendTo("元素"); -> 把jQuery元素追加到元素中

    jQuery元素.empty():清空所有子元素

    jQuery元素.remove():删除自己

    jQuery元素.clone([true/false]):当前元素复制一下 (加true可以连事件一起复制)

  7、查询

    jQuery元素.closest("条件") -> 从当前元素向上查询,找到第一个满足条件的元素为止

    jQuery元素.parent() -> 找到当前元素的父元素

  8、ready(fn) :页面载入 [dom就绪后执行相应的代码]

    $(function(){...})

 

 五、代码案例

   1、案例一:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户新增测试</title>
<script language="javascript" src="../jquery/jquery-1.11.2.min.js"></script>
<script language="javascript">
    $(function(){
        //提交
        $("#btn_submit").on("click",function(){
            var un=$("#username").val();
            var em=$("#email").val();
            var tel=$("#tel").val();
            //append("内容"):在调用该方法的标签中的内容后面加入指定的内容
            //prepend("内容"):在调用该方法的标签中的内容前面加入指定的内容
            $("#userTbody").append("<tr><td>"+un+"</td><td>"+em+"</td><td>"+tel+"</td><td><button class='del'>删除</button></td></tr>");
        })
        
        //删除所有
        $("#btn_removeAll").on("click",function(){
            //删除tbody的所有子元素
            $("#userTbody").empty();
        })
        
        //删除单条数据
        //on("绑定的事件","需要满足的条件",满足条件执行的函数(方法))
        $("#userTbody").on("click",".del",function(){
            //parent():找到元素的父元素
            //$(this).parent().parent().remove();
            //closest:从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素。。
            $(this).closest("tr").remove();
        })
        
    });
</script>
</head>
<body>
    <a href="http://www.itsource.cn">首页</a>
    <form name="userForm">
        <center>
        用户录入<br/>
        用户名:<input id="username" name="username" type="text"/>
        E-mail:<input  id="email" name="email" type="text"/>
        电话:<input id="tel" name="tel" type="text"/>
        
        <input type="button" value="提交" id="btn_submit"/>
        <input type="button" value="删除所有" id="btn_removeAll"/>
        
        </center>
    </form>
    <hr/>
    <table border="1" align="center"> 
        <thead>
            <tr>
                <th>用户名</th>
                <th>E-mail</th>
                <th>电话</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody id="userTbody">
            
        </tbody>
    </table>
    
    
</body>
</html>

  2、案例二:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jquery练习</title>
<script type="text/javascript" src="../jquery/jquery-1.11.2.min.js"></script>
<script type="text/javascript">
    $(function() {
        $("#btn1").on("click",function(){
            $("#select").val("2号");
        })
        //下拉框
        $("#btn2").on("click",function(){
            //选中下拉框中value值为2号和5号的选项
            $("#selectMultiple").val(["2号","5号"]);
        })
        //复选框
        $("#btn3").on("click",function(){
            //选中复选框中value值为复选2和复选4的选项
            $("input[name=checkbox]").val(["复选2","复选4"]);
        })
        //单选框
        $("#btn4").on("click",function(){
            //单选框2的下标是1
            $("input[name=radio]").get(1).checked=true;
        })
        
        $("#btn5").on("click",function(){
            console.debug($(":checked"));
        })
    });
</script>

</head>
<body>
    <input id="btn1" type="button" value="使单选下拉框‘2号’选中"/><br/>
    <input id="btn2" type="button" value="使多选下拉框‘2号’和‘5号’选中"/><br/>
    <input id="btn3" type="button" value="使复选框‘2号’和‘4号’选中"/><br/>
    <input id="btn4" type="button" value="使单选框‘单选2’选中"/><br/>
    <input id="btn5" type="button" value="打印已被选中的值"/><br/>
    
    <form name="userForm">
        单选下拉框<select id="select" name="select">
            <option value="1号">1号</option>
            <option value="2号">2号</option>
            <option value="3号">3号</option>
            <option value="4号">4号</option>
            <option value="5号">5号</option>
            <option value="6号">6号</option>    
        </select>
        
        多选下拉框<select id="selectMultiple" multiple="multiple" size="6" name="selectMultiple">
            <option value="1号">01号</option>
            <option value="2号">02号</option>
            <option value="3号">03号</option>
            <option value="4号">04号</option>
            <option value="5号">05号</option>
            <option value="6号">06号</option>    
        </select>
        <br/>
        复选框<input value="复选1" type="checkbox" name="checkbox"/>复选1
        <input value="复选2" type="checkbox" name="checkbox"/>复选2
        <input value="复选3" type="checkbox" name="checkbox"/>复选3
        <input value="复选4" type="checkbox" name="checkbox"/>复选4
        <input value="复选5" type="checkbox" name="checkbox"/>复选5
        <br/>
        单选框<input value="单选1" type="radio" name="radio"/>单选1
        <input value="单选2" type="radio" name="radio"/>单选2
        <input value="单选3" type="radio" name="radio"/>单选3
        <input value="单选4" type="radio" name="radio"/>单选4
    </form>
</body>
</html>

 

posted @ 2019-06-04 23:55  十五小哥哥  阅读(375)  评论(0编辑  收藏  举报