1. 程式人生 > >jQuery選擇器——層次選擇器

jQuery選擇器——層次選擇器


parent > child

描述:

匹配表單中所有的子級input元素

HTML 程式碼:
<form>
  <label>Name:</label>
  <input name="name" />
  <fieldset>
      <label>Newsletter:</label>
      <input name="newsletter" />
 </fieldset>
</form>
<input name="none" />
jQuery 程式碼:
$("form > input")
結果:
[ <input name="name" /> ]

prev + next

描述:

匹配所有跟在 label 後面的 input 元素

HTML 程式碼:
<form>
  <label>Name:</label>
  <input name="name" />
  <fieldset>
      <label>Newsletter:</label>
      <input name="newsletter" />
 </fieldset>
</form>
<input name="none" />
jQuery 程式碼:
$("label + input")
結果:
[ <input name="name" />, <input name="newsletter" /> ]

prev ~ siblings:

找到 form 元素的所有同輩 input 元素

HTML 程式碼:
<form>
  <label>Name:</label>
  <input name="name" />
  <fieldset>
      <label>Newsletter:</label>
      <input name="newsletter" />
 </fieldset>
</form>
<input name="none" />
jQuery 程式碼:
$("form ~ input")
結果:
[ <input name="none" /> ]

例項:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>層次選擇器</title>
    <style type="text/css">
            /*body{
         background-color:#59e9f6;
        }*/

            div, span, p {
                width: 200px;
                height: 230px;
                margin: 5px;
                background: #aaa;
                border: #000 1px solid;
                float: left;
                font-size: 17px;
                font-family: Arial;
                font-family: Verdana;
            }

                div.mini {
                    width: 80px;
                    height: 80px;
                    background-color: #aaa;
                    font-size: 12px;
                    font-family: Arial;
                }

                div.hide {
                    display: none;
                }
    </style>
    <!--   引入jQuery -->
    <script src="Scripts/jquery-1.11.3.js"></script>
    <script type="text/javascript">

        $(document).ready(function () {
            //手動重置頁面元素
            $("#reset").click(function () {
                $("*").removeAttr("style");
                $("div[class=none]").css({ "display": "none" });
            });
            //判斷是否自動重置
            $("input[type=button]").click(function () {
                if ($("#isreset").is(":checked")) {
                    $("#reset").click();
                }
            });
            //給id為mover的元素新增動畫.
            function animateIt() {
                $("#mover").slideToggle("slow", animateIt);
            }
            animateIt();
        })
        $(function () { 
            //選擇 body內的所有div元素  \\\\\\\\\\\\\\\\\


            $("#btn1").on("click", function () {
                $("body div").css("background","red");
            });
            //在body內的選擇 元素名是div 的子元素.59e9f6
            $("#btn2").on("click", function () {
                $("div>div").css("background", "red");
            });
            //選擇 所有class為one 的下一個div元素.
            $("#btn3").on("click", function () {
                $(".one+div").css("background", "red");
            });
            //選擇 id為two的元素後面的所有div兄弟元素.
            $("#btn4").on("click", function () {
                $("#two~div").css("background", "red");
            });
        });
    </script>
</head>
<body>
    <h3>層次選擇器.</h3>
    <button id="reset">手動重置頁面元素</button>
    <input type="checkbox" id="isreset" checked="checked" /><label for="isreset">點選下列按鈕時先自動重置頁面</label><br /><br />

    <input type="button" value="選擇 body內的所有div元素." id="btn1" />
    <input type="button" value="在body內,選擇子元素是div的。" id="btn2" />
    <input type="button" value="選擇 所有class為one 的下一個div元素." id="btn3" />
    <input type="button" value="選擇 id為two的元素後面的所有div兄弟元素." id="btn4" />

    <br />
    <br />
    <!-- 測試的元素 -->
    <div class="one" id="one">
        id為one,class為one的div(女警)
        <div class="mini">class為mini的div(曙光)</div>
    </div>

    <div class="one" id="two" title="test">
        id為two,class為one,title為test的div(金克斯)
        <div class="mini" title="other">class為mini,title為other的div(寶石)</div>
        <div class="mini" title="test">class為mini,title為test的div(璐璐)</div>
    </div>

    <div class="one">
        class為one的div(EZ)
        <div class="mini">class為mini的div(琴女)</div>
        <div class="mini">class為mini的div(眾星之子)</div>
        <div class="mini">class為mini的div(喚潮鮫姬)</div>
        <div class="mini">class為mini的div(牛頭)</div>
    </div>

    <div class="one">
        class為one的div(奧巴馬)
        <div class="mini">class為mini的div(鳳女)</div>
        <div class="mini">class為mini的div(機器人)</div>
        <div class="mini">class為mini的div(狗熊)</div>
        <div class="mini" title="tesst">class為mini,title為tesst的div(雪人)</div>
    </div>

    <div style="display:none;" class="none">
    style的display為"none"的div(VN)
    </div>

    <div class="hide">
    class為"hide"的div(螃蟹)
    </div>

    <div>
        包含input的type為"hidden"的div(飛機)
        <input type="hidden" size="8" />
    </div>
    <div>
        什麼也沒有
    </div>
    <span id="mover">正在執行動畫的span元素.</span>

</body>
</html>