Day72 自定义Js脚本库、jQuery

1.思维导图

 

2.代码部分

自定义myjs脚本库

  • 传统js
<head>
    <title>自定义myjs脚本库</title>
    <script>
        function fn1() {
            //获取div元素
            var ele = document.getElementById("div1");
            // 获取 div元素标签内容
            console.log(ele.innerHTML);
            //设置div元素标签内容
            ele.innerHTML = "this is a div1";
            // 获取 div元素标签内容
            console.log(ele.innerHTML);
        }

        function fn2() {
            //获取div元素
            var ele = document.getElementById("div2");
            // 获取 div元素标签内容
            console.log(ele.innerHTML);
            //设置div元素标签内容
            ele.innerHTML = "this is a div2";
            // 获取 div元素标签内容
            console.log(ele.innerHTML);
        }
    </script>
</head>
<body>

<div id="div1">
这是一个div1
</div>

<div id="div2">
    这是一个div2
</div>
<div id="div3">
    这是一个div3
</div>
  <button onclick="fn1()">操作1</button>
  <button onclick="fn2()">操作2</button>
</body>
  • myjs.js
function $(id) {

    var ele = document.getElementById(id);

    //给ele添加一个方法,方法名叫html,形参content
    ele.html = function (content) {
        if (content != null) { //如果content不为空,就将content设置到ele对象中
            ele.innerHTML = content;
        } else { // 如果content为空,就获取ele的内容
            return ele.innerHTML;
        }
    }

    return ele;
}
<head>
    <title>自定义myjs脚本库</title>
    <script src="${pageContext.request.contextPath}/js/myjs.js"></script>
    <script>

        function fn1() {

            var content = $("div1").html();
            console.log(content);
        }

        function fn2() {
            // var ele = $("div1");
            // ele.html("this is a Div");
            $("div1").html("this is a div")
        }
    </script>
</head>
<body>


<div id="div1">
    这是一个div1
</div>
    <button onclick="fn1()">获取</button>
    <button onclick="fn2()">设置</button>
</body>

 

jQuery

  • 基本使用
<head>
    <title>基本使用</title>
    <script src="${pageContext.request.contextPath}/js/jquery-3.2.1.min.js"></script>
    <script>
        function fn1() {
            //$("选择器") -> 元素对应的jquery对象
            var ele = $("#div1");
            var content = ele.html();
            console.log(content);
        }

        function fn2() {
            //ele不是js对象,而是一个jquery对象
            var ele = $("#div1");
            ele.html("this is a div");
        }


    </script>
</head>
<body>


<div id="div1">
    这是一个div
</div>

    <button onclick="fn1()">获取</button>
    <button onclick="fn2()">设置</button>

</body>
  • jQuery对象和js对象
<head>
    <title>jQuery对象和js对象</title>
    <script src="${pageContext.request.contextPath}/js/jquery-3.2.1.min.js"></script>
    <script>

        function fn1() {
            //获取js对象
            var jsObject = document.getElementById("div1");
            //js对象能否使用jquery对象的属性和方法?
            jsObject.html("this is a div");
        }

        function fn2() {
            var jqObject = $("#div1");
            //jquery对象能否使用js对象的属性和方法?
            jqObject.innerHTML = "this is a div";
        }

        //需求:已有js对象,让js对象调用jquery对象的属性和方法
        //将js对象转换成jquery对象
        function fn3() {
            //获取js对象
            var jsObject = document.getElementById("div1");
            //将js对象 -> jquery对象
            var jqObject = $(jsObject);
            //调用jquery对象的属性和方法
            jqObject.html("this is a div!!!");
        }

        //需求:已有jquery对象,让jquery对象调用js对象的属性和方法,
        //将jquery对象转换成js对象
        function fn4() {
            //获取jquery对象
            var jqObject = $("#div1");
            //jquery对象 -> js对象
            // var jsObject = jqObject.get(0);
            var jsObject = jqObject[0];
            //调用js对象的属性和方法
            jsObject.innerHTML = "this is a div ???";
        }

    </script>

</head>
<body>

<div id="div1">
    这是一个div
</div>
  <button onclick="fn1()">操作1</button>
  <button onclick="fn2()">操作2</button>
  <button onclick="fn3()">转换1</button>
  <button onclick="fn4()">转换2</button>
</body>

 

jQuery选择器

  • 基本选择器
<script>
        //选择id为one的元素  ID选择器
        function fn1(){
            $("#one").css("background-color","orange");
        }
        //选择class为mini的所有元素   类选择器
        function fn2(){
            $(".mini").css("background-color","pink");
        }
        //选择元素名是div的所有元素    标签选择器
        function fn3(){
            $("div").css("background-color","lightpink");
        }
        //选择所有的元素  通配符选择器
        function fn4(){
            $("*").css("background-color","pink")
        }
    </script>
  • 层次选择器
     //选择body内的所有div元素 $("a b")
        function fn1(){ 
           $("body div").css("background-color","pink");
        }
        //在body内选择子元素是div的 $("a > b")
        function fn2(){
           $("body > div").css("background-color","pink");
        }
        //选择所有id为one的下一个兄弟div元素  $("a + b")
        function fn3(){
          $("#one + div").css("background-color","pink");
        }
        //选择id为two的元素后面的所有div兄弟元素  $("a ~ b")
        function fn4(){
            $("#one ~ div").css("background-color","pink");
        }
  • 基本过滤选择器
     //选择第一个DIV元素
        function fn1(){
            $("div:first").css("background-color","pink");
        }
        //选择最后一个div元素
        function fn2(){
            $("div:last").css("background-color","pink");
        }
        //选择class不为one的所有div元素 $('dom:not(.one)')
        function fn3(){
            $("div:not(.one)").css("background-color","pink");
        }
        //选择索引值为偶数的div元素 even:偶数 odd:奇数
        function fn4(){
            $("div:even").css("background-color","pink");
        }
        //选择索引值为奇数的div元素
        function fn5(){
            $("div:odd").css("background-color","pink");
        }
        //选择索引值等于3的元素
        function fn6(){
            $("div:eq(3)").css("background-color","pink");
        }
        //选择索引值大于3的元素
        function fn7(){
            $("div:gt(3)").css("background-color","pink");
        }
        //选择索引值小于3的元素
        function fn8(){
            $("div:lt(3)").css("background-color","pink");
        }
  • 内容过滤选择器
        //选取含有文本"di"的div元素  $("tagName:contains('str')")
        function fn1(){
            $("div:contains('di')").css("background-color","pink");
        }
        //选取不包含子元素(或者文本元素)的div空元素. $("tagName:empty");
        function fn2(){
            $("div:empty").css("background-color","pink");
        }
        //选取含有class为mini元素 的div元素. $("tagName:has(.mini)")
        //1.选中的是DIV元素  
//2.子元素中的class值为mini
function fn3(){ $("div:has(.mini)").css("background-color","pink"); }
  • 属性过滤选择器
     //选取含有属性title的div元素.  $("tagName[title]");
        function fn1(){
            $("div[title]").css("background-color","red");
        }
        //选取属性title值等于test的div元素. $("tagName[title='test']")
        function fn2(){
            $("div[title='test']").css("background-color","pink");
        }
        //选取属性title值不等于test的div元素. !=
        function fn3(){
            $("div[title!='test']").css("background-color","pink");
        }
        //选取属性title值以te开始 的div元素.  ^=
        function fn4(){
            $("div[title^='te']").css("background-color","pink");
        }
        //选取属性title值以est结束的div元素.  $=
        function fn5(){
            $("div[title$='est']").css("background-color","pink");
        }
        //选取属性title值含有es的div元素.     *=
        function fn6(){
            $("div[title*='es']").css("background-color","pink");
        }
        //组合属性选择器,首先选取有属性id的div元素,然后在结果中 选取属性title值 含有 es 的元素.
        function fn7(){
            $("div[id][title*='es']").css("background-color","pink");
        }
  • 子元素过滤选择器
     //选取class为one的div下的第2个子元素  
        function fn1(){
            $("div[class='one'] :nth-child(2)").css("background-color","pink");
        }
        //选取class为one的div下的第1个子元素
        function fn2(){
            // $("div[class='one'] :nth-child(1)").css("background-color","pink");
            $("div[class='one'] :first-child").css("background-color","pink");
        }
        //选取每个父元素下的最后一个子元素
        function fn3(){
            $("div :last-child").css("background-color","pink");
        }
        //如果父元素下的仅仅只有一个子元素,那么选中这个子元素  
        function fn4(){
            $("div :only-child").css("background-color","pink");
        }

 

jQuery的dom操作

<head>
    <title>jQuery的dom操作</title>
    <script src="${pageContext.request.contextPath}/js/jquery-3.2.1.min.js"></script>
    <script>
        function fn1() {
            $("#div1").html("<font color='red'>红色</font>")
        }

        function fn2() {
            $("#div1").text("<font color='green'>绿色</font>")
        }

        function fn3() {
            // $("#username").val("设置");
            console.log($("#username").val())
        }

        function fn4() {
            $("#div1").attr("class","bbbb");
            console.log($("#div1").attr("class"));
        }

        function fn5() {
            $("#div1").removeAttr("class");
            console.log($("#div1").attr("class"));
        }
    </script>
</head>
<body>

    <div id="div1" class="aaaa">
        这是一个div
    </div>
    <input type="text" id="username"/>
    <button onclick="fn1()">html()</button>
    <button onclick="fn2()">text()</button>
    <button onclick="fn3()">val()</button>
    <button onclick="fn4()">attr()</button>
    <button onclick="fn5()">removeAttr()</button>
</body>

 

posted @ 2020-05-13 20:29  Her4c  阅读(170)  评论(0编辑  收藏  举报