1. 程式人生 > >jQuery學習 — — 選擇器(中)

jQuery學習 — — 選擇器(中)

四、內容過濾選擇器

  1. :contains選擇器: $(“div:contains(‘la’)”) (注意該選擇器針對的是文字,不是元素)
    將包含有la字串的div元素作為Dom物件放進jQuery包裝集並返回

  2. :empty選擇器: $(“div:empty”)
    將空的(沒有子元素或文字)的div元素作為Dom物件放進jQuery包裝集並放回

  3. :has選擇器:$(“div:has(h2)”) (注意該選擇器針對的是元素,不是文字)
    將含有子元素h2的div元素作為Dom物件放進jQuery包裝集並返回

  4. :parent選擇器:$(“div:parent”)
    將含有子元素或者文字(非空)的div元素作為Dom物件放進jQuery包裝集並返回

<head>
    <base href="<%=basePath%>">
    <title>My JSP 'ad_selector4.jsp' starting page</title>
    <style type="text/css">
    .class1 {
        font-size: 15px;
    }
    .class2 {
        font-size: 50px;
    }
    </style>
    <script type="text/javascript"
src="${basePath }js/jquery/jquery-1.10.2.min.js">
</script> <script type="text/javascript"> //獲取包含la字串的div元素 function doSelector1(){ var contains = $("div:contains('la')"); contains.each(function(){ alert($(this).html()); }); } //獲取空的div元素
function doSelector2(){ var empty = $("div:empty"); empty.each(function(){ alert($(this).html()); }); } //獲取包含<h2>元素的div元素 function doSelector3(){ var has = $("div:has(h2)"); has.each(function(){ alert($(this).html()); }); } //查詢所有含有子元素或者文字的div元素 function doSelector4(){ var parent = $("div:parent"); parent.each(function(){ alert($(this).html()); }); }
</script> </head> <body> <h1>hell0 h1</h1> <div> <h2>hell0 h2</h2> </div> <h3>hell0 h3</h3> <div>divhaha</div> <div>lala</div> <div></div> <input type="button" value=":contains選擇器" onclick="doSelector1()"> <input type="button" value=":empty選擇器" onclick="doSelector2()"> <input type="button" value=":has選擇器" onclick="doSelector3()"> <input type="button" value=":parent選擇器" onclick="doSelector4()"> </body>

五、可見性過濾選擇器

  1. :visible選擇器:$(“div:visible”)
    將所有可見的div元素作為Dom物件放進jQuery包裝集並返回

  2. :hidden選擇器:$(“div:hidden”)
    將所有不可見的div元素作為Dom物件放進jQuery包裝集並返回

  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'ad_selector5.jsp' starting page</title>

    <script type="text/javascript" src="${basePath }js/jquery/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
        //獲取所有可見的div,並將它們設定為不可見
        function doSelector1(){
            var hidden = $("div:visible");
            hidden.each(function(){
                $(this).hide();
            });
        }
        //獲取所有可不件的div,並將他們設定為可見
        function doSelector2(){
            var visible =  $("div:hidden");
            visible.each(function(){
                            $(this).show();
                        });
        }
    </script>
  </head>

  <body>
    <h1>hell0 h1</h1>
    <div style="display: none">
    <h2>hell0 h2</h2>
    </div>
    <h3>hell0 h3</h3>
    <div>divhaha</div>
    <div>lala</div>
    <div></div>
    <input type="button" value=":visible選擇器" onclick="doSelector1()">
    <input type="button" value=":hidden選擇器" onclick="doSelector2()">
  </body>

六、屬性過濾選擇器

1、attribute :$(“[id]”)
將所有包含id屬性的元素作為Dom放進jQuery包裝集並返回

2、attribute=value : $(“[id=’test1’]”)
將id=test1的元素作為Dom物件放進jQuery包裝集並返回

3、attribute!=value : $(“[id!=’test1’]”)
將id != test1 的元素作為Dom物件放進jQuery包裝集並返回,注意:那些沒有id屬性的元素也會被選中

4、attribute!=value(組合) : $(“[id][id!=’test1’]”);
將包含有id屬性,並且id=test1的元素作為Dom物件放進jQuery包裝集並返回。與第三點相比,這裡過濾掉了那些沒有id屬性的元素(即沒有id屬性的元素不會被選中)

5、attribute^=value : $(“input[name^=’test’]”)
將name屬性是以test開頭的input元素作為Dom物件放進jQuery包裝集並返回。

6、attribute$=value : $(“input[name$=’letter’]”)
將name屬性是以letter結尾的input元素作為Dom物件放進jQuery包裝集並返回。

7、attribute*=value : $(“input[name*=’s’]”)
將name屬性中包含有字串“s”的input元素作為Dom物件放進jQuery包裝集並返回。

8、組合選擇器:$(“input[id][name^=’test’]”) 顧名思義,將多個選擇器聯合起來用。
將包含id屬性,且name屬性是以“test”開頭的input元素作為Dom物件放進jQuery包裝集並返回。

<head>
    <base href="<%=basePath%>">
    <title>My JSP 'ad_selector6.jsp' starting page</title>
    <script type="text/javascript" src="${basePath }js/jquery/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
        //獲取包含屬性id的標籤
        function doSelector1(){
            var attribute = $("[id]");
            attribute.each(function(){
                            alert($(this).val());
                        });
        }
        //獲取包含屬性id並且id=test1的標籤
        function doSelector2(){
            var attribute_value = $("[id='test1']");
            attribute_value.each(function(){
                            alert($(this).val());
                        });
        }
        //獲取id!=test1的標籤(不包含屬性id的標籤也會被選中)
        function doSelector3(){
            var attribute_value = $("[id!='test1']");
            attribute_value.each(function(){
                            alert($(this).val());
                        });
        }
        //如果希望獲取包含指定的屬性,並且屬性值不等於給定值
        function doSelector4(){
            var attribute_value1 = $("[id][id!='test1']");
            attribute_value1.each(function(){
                                    alert($(this).val());
                                });
        }

        //獲取所有name以test開頭的input元素
        function doSelector5(){
            var attribute5 = $("input[name^='test']");
            attribute5.each(function(){
                                alert($(this).val());
                            });
        }
        //獲取所有name以letter結尾的input元素
        function doSelector6(){
            var attribute6 = $("input[name$='letter']");
            attribute6.each(function(){
                                alert($(this).val());
                            });
        }
        //獲取所有name包含有s的input元素
        function doSelector7(){
            var attribute7 = $("input[name*='s']");
            attribute7.each(function(){
                                alert($(this).val());
                            });
        }

        //組合查詢,獲取所有name以test開頭,包含id屬性的input元素
        function doSelector8(){
            var attribute8 = $("input[id][name^='test']");
            attribute8.each(function(){
                                alert($(this).val());
                            });
        }
    </script>


  </head>
  <body>
    <div>
        <input type="text" id="test1" name="test1" value="test1" >
        <input type="text" id="test2" name="test2" value="test2" ><br>
        <input type="checkbox" name="newsletter" value="haha"/>
        <input type="checkbox" name="newsletter" value="lala"/>
        <input type="checkbox" name="accept" value="good"/>
    </div>
    <input type="button" value="attribute" onclick="doSelector1()">
    <input type="button" value="attribute=value" onclick="doSelector2()">
    <input type="button" value="attribute!=value" onclick="doSelector3()">
    <input type="button" value="attribute!=value" onclick="doSelector4()">
    <input type="button" value="attribute^=value" onclick="doSelector5()">
    <input type="button" value="attribute$=value" onclick="doSelector6()">
    <input type="button" value="attribute*=value" onclick="doSelector7()">
    <input type="button" value="group" onclick="doSelector8()">

  </body>