1. 程式人生 > >51 jquery 節點操作和 bootstrapt

51 jquery 節點操作和 bootstrapt

jquery 和 bootstrapt
1.jquery each 函式

1.each 迴圈方式一:
可迴圈物件: var arr =["alex","deng","wang"] 或 var dic ={"name":"deng","age":18}
$.each(可迴圈物件,function(index,value){})

2.each 迴圈方式二:
$("選擇器").each(function(){})
例子:

$("p").each(function () {
if ($(this).html()=="yuan"){

// return false // 類似break
return // 類似continue
}
//console.log(this.innerHTML); // this 當前迴圈的dom物件
console.log($(this).html()); // this 當前迴圈的dom物件
//$(this).html($(this).html()+"!")

})

3.節點操作
1.建立節點
$("<p>")

2.新增節點
$("父節點").append("<p></p>") //可以直接新增標籤字串
$("父節點").append($("<p>"))
3.刪除節點
$("p").remove()
4.替換節點
$("舊節點").replaceWith("新節點")

5.克隆節點
$("p").clone()
<!
DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.3.1.js"></script> </head> <body> <div class="box"> <div class="item"> <button>+</button><input type="text"> </div> </div> <script> $("button").click(function () { var obj = $(this).parent().clone(); //box最後新增一個孩子,在把button中的按鈕的加號改為— $(".box").append(obj).children().last().children(":first").html("-").attr("class","rem"); }); $(".box").on("click",".rem",function () { $(this).parent().remove(); }) </script> </body> </html>
克隆節點事例

4.獲取和設定query(input)物件的value值
1. $("input").val() //獲取屬性值
2. $("input").val("值") //設定屬性值

        $("td").html("<input type ='text'>") //可以直接 替換的作用,標籤替換文字 便籤《======》文字
        

5.輪播圖中涉及的知識點:
1.定時器操作:
設定定時器 var ID = setIntval(GO_R,1000); //自動輪播的時候開啟定時器
清除定時器 clearInval(ID) // 滑鼠懸停在大框上時,清除定時器,移開時又開起定時器
該處用到 .hover 事件,接兩個函式,第一個函式為滑鼠在其上要進行的操作,第二個函式為滑鼠移開時要進行的操作
// 停止定時器 .hover 事件 括號中接兩個函式
$(".outer").hover(function(){},function(){})

$(".outer").hover(function () {
console.log(123);// 暫停定時器
clearInterval(ID)
},function () {
ID=setInterval(GO_R,2000);
})

2. 淡入淡出

fadeIn(時間) :淡入
fadeOut(時間):淡出
$("li").stop():表示停下之前的操作,直接跳到當前的操作。主要是防止使用者連續點選後,圖片跳轉不過來

$(".img li").eq(index).stop().fadeIn(1000).siblings().stop().fadeOut(1000);//淡入或淡出經過一秒完成
$(".num li").eq(index).addClass("active").siblings().removeClass("active")

3.$(this).index() 獲取索引值,滑鼠放在li小圈上,可以用
$(".num li").mouseover(function () {
console.log($(this).index());
$(".img li").eq($(this).index()).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
$(".num li").eq($(this).index()).addClass("active").siblings().removeClass("active")
index=$(this).index()
})


二.bootstrapt
1.注意事項:
1. bootstrapt 是基於jquery的,所有在匯入bootstrapt 檔案時,需要先匯入jquery
2.bootstrapt 中文文件地址:https://v3.bootcss.com

2.Bootstrapt 尺寸控制
1.寬度的控制
柵格系統 :需要用層div,外層設定class ="row" 屬性,內層div 設定class ="col-md-num"屬性,內層div裝input標籤
<div class="row">
<div class="col-xs-2">
<input type="text" class="form-control" placeholder=".col-xs-2">
</div>
<div class="col-xs-3">
<input type="text" class="form-control" placeholder=".col-xs-3">
</div>
<div class="col-xs-4">
<input type="text" class="form-control" placeholder=".col-xs-4">
</div>
</div>

2.高度

3.大小的控制
-lg , -md ,-sm , -xs
<input type="button" class="btn btn-danger btn-xs" value="anwo">
<input type="button" class="btn btn-danger btn-sm" value="anwo">
<input type="button" class="btn btn-danger btn-md" value="anwo">
<input type="button" class="btn btn-danger btn-lg" value="anwo">

3.顏色控制
文字顏色 text-muted , -primary ,-success ,-info ,-warning, -danger
情境背景色: bg-primary, bg-success, -info,-warning,-danger
按鈕色 :btn-primary , ......

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 最新版本的 Bootstrap 核心 CSS 檔案 -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <!-- 可選的 Bootstrap 主題檔案(一般不用引入) -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    <!-- 最新的 Bootstrap 核心 JavaScript 檔案 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

    <style>

        .container .row td{
            padding: 10px;
        }

        #box{

          padding-top:50px;
        }

       .add{
           margin:20px 0;
       }

        td{
            width: 15%;
        }

    </style>
</head>
<body>




<div class="container-fluid">
    <div class="row">

        <div class="col-md-10 col-lg-offset-1" id="box" >
            <div>
                <button type="button" class="btn btn-success add" data-toggle="modal" data-target="#myModal">
                新增員工資訊
                </button>
            </div>

            <table class="table table-striped">
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>年齡</th>
                    <th>部門</th>
                    <th>薪水</th>
                    <th>操作</th>
                </tr>

                <tr>
                    <td>1</td>
                    <td>張三</td>
                    <td>23</td>
                    <td>銷售部</td>
                    <td>3000</td>
                    <td>
                        <button class="btn btn-danger btn-sm del">刪除</button>
                        <button class="btn btn-info btn-sm edit">編輯</button>
                        <button class="btn btn-primary btn-sm">檢視</button>
                    </td>
                </tr>

                 <tr class="handle">
                    <td>2</td>
                    <td>李四</td>
                    <td>32</td>
                    <td>保安部</td>
                    <td>5000</td>
                    <td>
                        <button class="btn btn-danger btn-sm del">刪除</button>
                        <button class="btn btn-info btn-sm edit">編輯</button>
                        <button class="btn btn-primary btn-sm">檢視</button>
                    </td>
                </tr>
            </table>
        </div>

    </div>

</div>


<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">

          <div class="row">

              <div class="col-md-5 col-lg-offset-3">
                        <form class="add_form edit_form">
                              <div class="form-group">
                                <label for="username">姓名</label>
                                <input type="text" class="form-control" id="username" placeholder="username">
                              </div>
                              <div class="form-group">
                                <label for="age">年齡</label>
                                <input type="text" class="form-control" id="age" placeholder="age">
                              </div>
                              <div class="form-group">
                                <label for="dep">部門</label>
                                <input type="text" id="dep" placeholder="dep" class="form-control">

                              </div>

                               <div class="form-group">
                                <label for="salary">薪水</label>
                                <input type="text" class="form-control" id="salary" placeholder="salary">
                              </div>
                          </form>
              </div>
          </div>


      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary add_save">Save changes</button>
        <button type="button" class="btn btn-primary edit_save" style="display: none">Save changes</button>

      </div>
    </div>
  </div>
</div>


<script>
         // 提煉出一個建立tr的函式
         function createTr(){
             var $tr=$("<tr>");
             var l=$("tr").length;
             $tr.append("<td>"+l+"</td>")
             $(".add_form :text").each(function(){

                 $tr.append($("<td>").html($(this).val()))
             });


             $handle="<td><button class=\"btn btn-danger btn-sm del\">刪除</button> <button class=\"btn btn-info btn-sm edit\">編輯</button> <button class=\"btn btn-primary btn-sm\">檢視</button></td>"

             $tr.append($handle);

             return $tr
         }

         // 新增按鈕

         $(".add_save").click(function(){



             $("#myModal").modal("hide");

             var $tr=createTr();

             $(".table tbody").append($tr);

             $(".add_form :text").val("");
         });

         // 刪除按鈕
         $("table").on("click",".del",function(){
            $(this).parent().parent().nextAll().children(":first").each(function () {
                $(this).html(parseInt( $(this).html())-1)
            });
            $(this).parent().parent().remove();

         });

         //編輯按鈕

         $("table").on("click",".edit",function(){

             $(this).attr("class","btn btn-warning btn-sm keep").html("儲存");

             console.log($(this).parent().prevAll(":lt(4)"));
             $(this).parent().prevAll(":lt(4)").each(function () {
                 let val=$("<input type='text' class='edit_input'>").val($(this).html())
                 $(this).html(val)
             })



         });

         /*
         $("table").on("click",".edit",function(){
             var $edit_obj=$(this).parent().parent();
             var arr=[];
             $(this).parent().siblings().each(function(){
                 arr.push($(this).text())

             });

             $(".edit_form :text").each(function(i){
                  $(this).val(arr[i])
             });

             $("#myModal").modal("show");


              $(".edit_save").show().prev().hide();
              $(".edit_save").click(function(){
                  $("#myModal").modal("hide");

                  // 建立tr標籤
                 var $tr=createTr();
                 $edit_obj.replaceWith($tr);
                 $(".edit_save").hide().prev().show();
             });

          })

          */
         // 儲存事件
          $("table").on("click",".keep",function(){
              $(this).parent().prevAll(":lt(4)").each(function () {
                 let val=$(this).children("input").val();
                 $(this).html(val)
             });
              $(this).attr("class","btn btn-info btn-sm edit").html("編輯");


          });

          /*
          $("table").on("blur",".edit_input",function(){
              console.log(">>>",$(".edit_input").parent())

              $(this).parent().parent().find(".keep").attr("class","btn btn-info btn-sm edit").html("編輯");
              $(".edit_input").parent().each(function () {
                 let val=$(this).children("input").val();
                 $(this).html(val)
              });

          })

          */



</script>




</body>
</html>
表格的增刪改查
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
            margin: 100px auto;
            width: 70%;


        }

        ul{
            list-style: none;
            background-color: gray;
            height: 40px;
            line-height: 40px;
        }
        ul li{
             display: inline-block;
             width: 80px;
             margin-left: 40px;
        }
        .content{
            margin-top: -15px;
        }
        .content div{
            height: 200px;
            background-color: lightgoldenrodyellow;
        }

        .active{
            background-color: #e4393c;
            color: white;
            text-align: center;
        }
        .hide{
            display: none;
        }
    </style>
</head>
<body>


<div class="box">
    <ul>
        <li rel="introduce" class="active"> 商品介紹</li>
        <li rel="after-sale"> 售後</li>
        <li rel="comment"> 評價</li>
    </ul>

    <div class="content">
        <div class="introduce">商品介紹....</div>
        <div class="after-sale hide">售後....</div>
        <div class="comment hide">評價....</div>
    </div>
</div>

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
    /*
    $("ul li").click(function () {
          $(this).addClass("active").siblings().removeClass("active");
          let val=$(this).attr("rel");
         $("."+val).removeClass("hide").siblings().addClass("hide");
    });

    */

    // JS版本

    let lis=document.getElementsByTagName("li");
    for (var i=0;i<lis.length;i++){
        lis[i].onclick=function () {
            this.classList.add("active");

             let val=this.getAttribute("rel");
             let rel2=document.getElementsByClassName(val)[0];
             rel2.classList.remove("hide");

              for (var j=0;j<lis.length;j++){
                 if(lis[j]!=this){
                     //  去除樣式
                     lis[j].classList.remove("active");
                     // 隱藏內容
                     let val=lis[j].getAttribute("rel");
                     let rel_sib=document.getElementsByClassName(val)[0];
                     rel_sib.classList.add("hide");

                 }
             };


        }
    }




</script>
</body>
</html>
tab欄 jquery 實現
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>

    <style>
        .outer{
            margin: 100px auto;
            width: 590px;
            height:470px ;
            border: solid red 1px;
            position: relative;
        }

        .outer ul{
            list-style: none;
        }
        ul.img li{
            position: absolute;
            top: 0;
            left: 0;

        }

        .num {
            width: 100%;
            position: absolute;
            left: 40px;
            bottom: 20px;
            list-style: none;
        ;}
        .num li{
            display: inline-block;
            width: 30px;
            height: 30px;
            background-color: gray;
            margin-left: 40px;
            border-radius: 50%;
            text-align: center;
            line-height: 30px;
        }

        .btn{
            position: absolute;
            top: 50%;
            width: 60px;
            height: 90px;
            background-color: darkgray;
            font-size: 36px;
            text-align: center;
            line-height: 70px;
            margin-top: -45px;
            opacity: 0.4;

        }
         .btn:hover{
             opacity: 1;
         }

        .left{
            left:0;
        }
        .right{
            right:0
        }

        .hide{
            display: none;
        }
        .active{
            background-color: red!important;
        }

    </style>

</head>
<body>


<div class="outer">
      <ul class="img">
          <li><a href=""><img src="img/1.jpg" alt=""></a></li>
          <li class="hide"><a href=""><img src="img/2.jpg" alt=""></a></li>
          <li class="hide"><a href=""><img src="img/3.jpg" alt=""></a></li>
          <li class="hide"><a href=""><img src="img/4.jpg" alt=""></a></li>
          <li class="hide"><a href=""><img src="img/5.jpg" alt=""></a></li>
      </ul>

    <ul class="num">

    </ul>

    <div class="action">
        <div class="left btn"> < </div>
        <div class="right btn"> > </div>
    </div>
</div>


<script>
    //  動態新增num li
    let img_num=$("ul.img li").length;
    let s
    for(var i=0;i<img_num;i++){
        if (i==0){
            s="<li class='active'></li>"
        }else{
            s="<li></li>"
        }
        $(".num").append(s)
    }

    // 自動輪播
    var ID=setInterval(GO_R,2000);
    var index=0;
    function GO_R() {
        if(index==img_num-1){
            index=-1;
        }
        index++;
        $(".img li").eq(index).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
        $(".num li").eq(index).addClass("active").siblings().removeClass("active")
    }

       function GO_L() {
        if(index==0){
            index=img_num;
        }
        index--;
         $(".img li").eq(index).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
        $(".num li").eq(index).addClass("active").siblings().removeClass("active")
    }
    // 停止定時器
    
    $(".outer").hover(function () {
        console.log(123)// 暫停定時器
        clearInterval(ID)
    },function () {
        ID=setInterval(GO_R,2000);
    })
    
    //  手動輪播
    
    $(".right").click(function () {
        GO_R()
    });
     $(".left").click(function () {
        GO_L()
    })
    
    // 懸浮顯示
    
    $(".num li").mouseover(function () {
        console.log($(this).index());
        $(".img li").eq($(this).index()).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
        $(".num li").eq($(this).index()).addClass("active").siblings().removeClass("active")
        index=$(this).index()
    })



</script>

</body>
</html>
輪播圖 定時器 fadeIn/fadeOut