第二十节(jquery筛选)

1:find筛选
例题为筛选加样式
<body>
  <div>111</div>
  <span>222</span>
  <p>333</p>
  
  <div id="test">
    <div class="green">4444</div>
    <div class="green">6666</div>
    <span>5555</span>
    <span class="green">9999</span>
  </div>
  
  <div class="green">7777</div>

  <script type="text/javascript">
    
      $(function(){
         /*$("body").find("div").each(function(){
            alert($(this).html());
         });*/

         //$("p,div,.green").css("background","green");
         //$(".green","#test") ==$("#test").find(".green");
         //$("#test .tm")
         var spanHtml = $("#test").find(".tm").html();
         var length = $("#test .green span").length;

         $("#test .green").css("background","red");

      });
  </script>
 </body>
2:first last eq筛选

<body>

  <div>11</div>
  <div>22</div>
  <div>33</div>
  <span>44</span>
  <script type="text/javascript">
    $(function(){
        //:first :last
        alert("方式:first:"+$("div:first").html());
        alert("方式:last:"+$("div:last").html());

        //first() last()
        alert("方式:first():"+$("div").first().html());
        alert("方式:last():"+$("div").last().html());
        
        //eq
        alert("方式:eq():"+$("div").eq(0).html());
        alert("方式:eq():"+$("div").eq(2).html());
        //:eq
        alert("方式:eq:"+$("div:eq(0)").html());
        alert("方式:eq:"+$("div:eq(2)").html());

    });
  </script>
 </body>
3:删除 及parents()  closest()的比较
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
  <title>Document</title>
  <style>
    .gfather{640px;height:100px;border:1px solid red;margin-top:5px;}
  </style>
 </head>
 <body>
 <div class="gggather">    
      <div class="gfather">
            <div id="father" class="father">22父亲
                <span id="span">1111</span>
                <span>222</span>
                <p>333</p>
                <a href="javascript:void(0)" onclick="tm_delete(this)">删除</a>
            </div>
       </div>

       <div class="gfather">
            <div id="father" class="father">22父亲
                <span id="span">1111</span>
                <span>222</span>
                <p>333</p>
                <a href="javascript:void(0)" onclick="tm_delete(this)">删除</a>
            </div>
       </div>


        <div class="gfather">
            <div id="father" class="father">22父亲
                <span id="span">1111</span>
                <span>222</span>
                <p>333</p>
                <a href="javascript:void(0)" onclick="tm_delete(this)">删除</a>
            </div>
       </div>
  </div>
  <script type="text/javascript">

     function tm_delete(obj){
        var $this = $(obj);
        $this.parents(".gfather").fadeOut("slow",function(){
            $(this).remove();
        });
     }


     $(function(){
         //parent() children()
        /* var f = $("#span").parent().attr("class");
         var cs = $("#father").children();
         alert("在当前元素下有:"+cs.length+"子元素");
         cs.each(function(i){
            alert("第"+(++i)+"个元素的【"+$(this).context.tagName+"】的值是:"+$(this).text());
         });
        */
        //parents()  closest();

        //如果parents()没有指明范围,那么它就等同于parent();
        //parents();从当前元素往上查找,找到最近的一个就返回
        //closest(obj)
        
        var f = $("#span").parents(".father");
        alert(f.html());
        var cf = $("#span").closest(".father");
        alert(cf.html());*/
     });
  </script>
 </body>
4:选项卡
 <script type="text/javascript" src="jquery-1.11.1.min.js"></script>
 <style>
   *{margin:0px;padding:0px;}
    #box{list-style:none;border:1px solid #ccc;100%;}
    li{list-style:none;list-style-image:none;}
    #box li{border-bottom:1px solid #ccc;75px;height:35px;padding:3px;float:left;cursor:pointer;}
    .active{background:red;}
  </style>
 </head>
 <body>
    <div style="border:1px solid red;486px;padding:5px;margin:10px auto;">
      <ul id="box">
        <li tab="#div1" class="active"><div>111111</div></li>
        <li tab="#div2"><div>222</div></li>
        <li tab="#div3"><div>3333</div></li>
        <li tab="#div4"><div>444</div></li>
        <li tab="#div5"><div>555</div></li>
        <li tab="#div6"><div>666</div></li>
      </ul>

      <div id="tabboxs">
        <div id="div1">1111111</div>
        <div id="div2" style="display:none;">2222222</div>
        <div id="div3" style="display:none;">3333311111</div>
        <div id="div4" style="display:none;">4444444444</div>
        <div id="div5" style="display:none;">5555555555</div>
        <div id="div6" style="display:none;">6666666666</div>
      </div>
  </div>
  <script type="text/javascript">
     $(function(){
        //siblings() =  prevAll() + nextAll()
        //$("#text").siblings().css("background","red");
        
        //第一种方式
        /*$("#box li").on("click",function(){    
            var index = $(this).index();
            $(this).addClass("active")
            $(this).siblings().removeClass("active");    
            $("#tabboxs").find("div").eq(index).show();
            $("#tabboxs").find("div").eq(index).show().siblings().hide();
        });*/

        //第二种方式
        $("#box li").on("click",function(){    
            var tab = $(this).attr("tab");
            $(this).addClass("active").siblings().removeClass("active");
            $(tab).show().siblings().hide();
        });
     });
  </script>
 </body>
5:filter筛选出与指定表达式匹配的元素集合。
这个方法用于缩小匹配的范围。用逗号分隔多个表达式

 <script type="text/javascript" src="jquery-1.11.1.min.js"></script>//jquery-1.11.1.min.js可在jquery.com上下载
 <body>
  <p>Hello</p><p>Hello Again</p><p class="selected">And Again</p>

    <script type="text/javascript">

      // attr prop html val text
      //find parent next is hasClass
      //hasClass("selected")
      //filter/is(className)
      $("p").filter(".selected").css("background","red");

       $("p").filter(".selected , :first").css("background","red");
    </script>

 </body>
6:is筛选   是根据选择器、DOM元素或 jQuery 对象来检测匹配元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true。如果没有元素符合,或者表达式无效,都返回'false'<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
 </head>
 <body>

  <div>1</div>
  <div>2</div>
  <div id="target">3</div>
  <div class="tmclass tm11">4</div>
  <div class="tmclass tm22">5</div>
  <div class="tmclass tm33">5</div>
  <div>6</div>

  <input type="text">    
  <label><input type="radio" id="male" name="male" value="1">男</label>
  <label><input type="radio" name="male" checked="checked" value="2">女</label>
  <label><input type="radio" name="male"  value="3">保密</label>
  
  <div id="divbox">
    <span class="span"></span>
    <span id="span" class="span"></span>
    <span class="span"></span>
  </div>

  <ul>
      <li><strong>list</strong> item 1 - one strong tag</li>
      <li><strong>list</strong> item <strong>2</strong> - two <span>strong tags</span></li>
      <li>list item 3</li>
  </ul>
  
  <script type="text/javascript">
        //hasClass():判断一个元素是否包含class
        //is(expression|object|function|elements) :选择器
        //filter() 
        //contents() 
        //not()



        //筛选
        $(function(){
            //$(".tm22").css("background","red");
            $(".tmclass").each(function(){
                /*if($(this).hasClass("tm22")){
                    $(this).css("background","red");
                }else{
                    $(this).css("background","green");
                }*/
            });
            
            /*
            $("input").each(function(){
                if($(this).is(":text")){
                    $(this).val("1111111111111111");
                }
            })    

            $("input[type='radio'][name='male']").each(function(){
                //if($(this).is(":checked")){
                if($(this).prop("checked")){//prop判断是否选中
                    alert("您当前选中的值是:"+$(this).val());
                }
            });*/
            
            //var flag = $("#male").is("input");
            //alert(flag);

            //var flag = $("#divbox").children().is("span");
            //alert(flag);

            $("li").on("click",function(){
                
                var flag = $(this).is(function(){
                    //return $(this).index()==1;
                    return $("strong",this).length===2;
                });

                if(flag){
                    $(this).css("background","green");
                }else{
                    $(this).css("background","red");
                }
            
            })

        });
        
  </script>
 </body>
7:content  查找匹配元素内部所有的子节点(包括文本节点)。如果元素是一个iframe,则查找文档内容

///在content.html中
 <script type="text/javascript" src="jquery-1.11.1.min.js"></script>
 </head>
 <body>
  <div id="parent">我是一个父亲窗口!</div>
  <iframe id="frame1" name="framename" src="children.html" width="690" height="420" scrolling="auto" style="border:1px solid #bbb;"></iframe><!--主要作用将主业务与副业务区分-->    

  <input type="button" onclick="tm_click()" value="我想要调用iframe里面的事件"/> 
  <script type="text/javascript">
    $(function(){
        //contents();
    });

    function getIframeObj(id){
        return document.getElementById(id).contentWindow;//一切对象都要在document下面
    }

    function tm_click(){
        var iframeDom = getIframeObj("frame1");
        /*
            //var iframeDom = document.frames["framename"].contentWindow;
            //事件能够调用
            iframeDom.tm_children();
            //javascript获取iframe元素内容
            var html = iframeDom.document.getElementById("box").innerHTML;//一切对象都要在document下面
            alert(html);
            
            //javascript转换成jquery对象的写法
            var $html = $(iframeDom.document).find("#box").html();
            alert($html);
        
        */

        //contents();
        var $iframe =  $("#frame1").contents();//==$(iframeDom.document)
        var boxHtml = $iframe.find("#box").html();
        alert(boxHtml);
    }
    function tm_parent(){
        alert("您调用了父窗口的方法哦!");
    }
  </script>
 </body>

/////在children.html中
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
 </head>
 <body>
    
    <div id="box">我是一个子类的页面哦!同学们好好听课!</div>
    <input type="button" onclick="tm_click()" value="我想要调用父窗体的事件"/> 
    <script type="text/javascript">
        function tm_children(){
            alert("我是一个子类的页面哦!好好学习!");
            
        }
        function tm_click(){
            parent.tm_parent();
            //javascript写法
            //var phtml = parent.document.getElementById("parent").innerHTML;
            //alert(phtml);
            //jquery写法
            var phtml = $(parent.document).find("#parent").html();
            alert(phtml);
        }
    </script>
 </body>
原文地址:https://www.cnblogs.com/Deng1185246160/p/4269536.html