JQuery选择器

选择器

基本选择器
#id

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ID选择器</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div id="notMe"><p>这是第一段</p></div>
<div id="myDiv">这是第二段</div>
<span id="foo:bar">这是第三段</span><br/>
<span id="foo[bar]">这是第四段</span><br/>
<span id="foo.bar">这是第五段</span><br/>
<script type="text/javascript">
    $(function () {
        //根据给定的ID匹配一个元素。
        $("#notMe").css("background-color","green").css("width","80px");
        $("#myDiv").css("background-color","blue").css("width","80px");
        //使用任何的元字符作为名称的文本部分, 它必须被两个反斜杠转义:\\。 参见示例。
        $("#foo\\:bar").css("background-color","yellow");
        $("#foo\\[bar\\]").css("background-color","#CCC");
        $("#foo\\.bar").css("background-color","red");
    });
</script>
</body>
</html>

element

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>element选择器</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div>这是第一段</div>
<div>这是第二段</div>
<span>这是第三段</span>
<script type="text/javascript">
    //根据给定的元素标签名匹配所有元素
    //一个用于搜索的元素。指向 DOM 节点的标签名。
    $(function () {
        $("div").css("color", "red");
        $("span").css("background-color", "blue");
    });
</script>
</body>
</html>

.class

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>class选择器</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div class="notMe">div class="notMe"</div>
<div class="myClass">div class="myClass"</div>
<span class="myClass">span class="myClass"</span>
<script type="text/javascript">
    //根据给定的css类名匹配元素。
    //一个用以搜索的类。一个元素可以有多个类,只要有一个符合就能被匹配到。
    $(function () {
        $(".myClass").css("color","red");
        $(".notMe").css("color","blue");
    });
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>*通配符选择器</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div>DIV</div>
<span>SPAN</span>
<p>P</p>
<script type="text/javascript">
    //匹配所有元素
    $(function () {
        $("*").css("color","blue");
    });
</script>
</body>
</html>

selector1,selector2,selectorN

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>selector1,selector2,selectorN</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div>div</div>
<p class="myClass">p class="myClass"</p>
<span>span</span>
<p class="notMyClass">p class="notMyClass"</p>
<script type="text/javascript">
    //将每一个选择器匹配到的元素合并后一起返回。
    // 你可以指定任意多个选择器,并将匹配到的元素合并到一个结果内
    //selector1  一个有效的选择器
    //selector2 另一个有效的选择器
    //selectorN 任意多个有效选择器
    $(function () {
        $("div,span,p.myClass").css("background-color","red");
    });
</script>
</body>
</html>

层级选择器
ancestor descendant

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ancestor descendant</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <label>Name:</label>
    <input name="name" />
    <fieldset>
        <label>Newsletter:</label>
        <input name="newsletter" />
    </fieldset>
</form>
<input name="none" />
<script type="text/javascript">
    //在给定的祖先元素下匹配所有的后代元素
    //ancestor
    // 任何有效选择器
    //descendant
    // 用以匹配元素的选择器,并且它是第一个选择器的后代元素
    $(function () {
        $("form input").css("background-color","red");
    });
</script>
</body>
</html>

parent > child

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>parent > child</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <label>Name:</label>
    <input name="name" />
    <fieldset>
        <label>Newsletter:</label>
        <input name="newsletter" />
    </fieldset>
</form>
<input name="none" />
<script type="text/javascript">
    //在给定的父元素下匹配所有的子元素
    //parent
    // 任何有效选择器
    //child
    // 用以匹配元素的选择器,并且它是第一个选择器的子元素
    $(function () {
        $("form > input").css("background-color","red");
    });
</script>
</body>
</html>

prev + next

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>prev + next</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <label>Name:</label>
    <input name="name" />
    <fieldset>
        <label>Newsletter:</label>
        <input name="newsletter" />
    </fieldset>
</form>
<input name="none" />
<script type="text/javascript">
    //匹配所有紧接在 prev 元素后的 next 元素
    //prev
    // 任何有效选择器
    //next
    // 一个有效选择器并且紧接着第一个选择器
    $(function () {
        $("label + input").css("background-color","blue");
    });
</script>
</body>
</html>

prev ~ siblings

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>prev ~ siblings</title>
    <script src="js/jquery.js"type="text/javascript"></script>
</head>
<body>
<form>
    <label>Name:</label>
    <input name="name" />
    <fieldset>
        <label>Newsletter:</label>
        <input name="newsletter" />
    </fieldset>
</form>
<input name="none" />
<script type="text/javascript">
    //匹配 prev 元素之后的所有 siblings 元素
    //prev
    // 任何有效选择器
    //siblings
    // 一个选择器,并且它作为第一个选择器的同辈
    $(function () {
        $("form ~ input").css("background-color","blue");
    });
</script>
</body>
</html>

基本筛选器
:first

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:first</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
</ul>
<script type="text/javascript">
    //获取第一个元素
    $(function () {
        $('li:first').css("color","red");
    });
</script>
</body>
</html>

:not(selector)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:not(selector)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div class="left">
    <div>
        <input type="checkbox" name="a" />
        <p>Aaron</p>
    </div>
    <div>
        <input type="checkbox" name="b" checked="checked" />
        <p>慕课</p>
    </div>
    <div>
        <input type="checkbox" name="c"/>
        <p>其他</p>
    </div>
</div>
<script type="text/javascript">
    // 去除所有与给定选择器匹配的元素
    // 在jQuery 1.3中,已经支持复杂选择器了(例如:not(div a) 和 :not(div,a))
    $(function () {
        $("input:not(:checked)+p").css("background-color", "#CD00CD");
    });
</script>
</body>
</html>

:even

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:even</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr><td>index 0</td></tr>
    <tr><td>index 1</td></tr>
    <tr><td>index 2</td></tr>
    <tr><td>index 3</td></tr>
</table>
<script type="text/javascript">
    //匹配所有索引值为偶数的元素,从 0 开始计数
    $(function () {
        $("tr:even").css("background-color","blue");
    });
</script>
</body>
</html>

:odd

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:odd</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr><td>index 0</td></tr>
    <tr><td>index 1</td></tr>
    <tr><td>index 2</td></tr>
    <tr><td>index 3</td></tr>
</table>
<script type="text/javascript">
    //匹配所有索引值为奇数的元素,从 0 开始计数
    $(function () {
        $("tr:odd").css("background-color","blue");
    });
</script>
</body>
</html>

:eq(index)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:eq(index)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr><td>index 0</td></tr>
    <tr><td>index 1</td></tr>
    <tr><td>index 2</td></tr>
    <tr><td>index 3</td></tr>
</table>
<script type="text/javascript">
    //匹配一个给定索引值的元素
    //:eq(index)   index就是下标
    $(function () {
        $("tr:eq(1)").css("color","red");
    });
</script>
</body>
</html>

:gt(index)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:gt(index)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr><td>index 0</td></tr>
    <tr><td>index 1</td></tr>
    <tr><td>index 2</td></tr>
    <tr><td>index 3</td></tr>
</table>
<script type="text/javascript">
    //匹配所有大于给定索引值的元素
    //:gt(index)    index就是下标
    $(function () {
        $("tr:gt(0)").css("color","red");
    });
</script>
</body>
</html>

:lang(language)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:lang(language)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<p lang="en">这是第一段内容</p>
<p lang="ts">这是第二段内容</p>
<p lang="it">这是第三段内容</p>
<script type="text/javascript">
    //选择指定语言的所有元素。
    // :lang选择器,匹配有一个语言值等于所提供的语言代码,或以提供的语言代码开始,后面马上跟一个“ - ”的元素。例如,选择器$("div:lang(en)")将匹配<div lang="en"> and <div lang="en-us">(和他们的后代<div>),但不包括<div lang="fr">
    //  对于HTML元素,语言值由lang属性决定,也可能由来自meta元素或HTTP头信息决定。
    // 这种用法的进一步讨论可以在 W3C CSS规范中找到。
    $(function () {
        $("p:lang(en)").css("background-color","blue");
        $("p:lang(ts)").css("color","red");
        $("p:lang(it)").css("background-color","green");
    });
</script>
</body>
</html>

:last()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:last()</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
</ul>
<script type="text/javascript">
    //获取最后个元素
    $(function () {
        $('li:last').css("background-color","red");
    });
</script>
</body>
</html>

:lt(index)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:lt(index)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr><td>index 0</td></tr>
    <tr><td>index 1</td></tr>
    <tr><td>index 2</td></tr>
    <tr><td>index 3</td></tr>
</table>
<script type="text/javascript">
    //匹配所有小于给定索引值的元素
    $(function () {
        $("tr:lt(2)").css("background-color","blue");
    });
</script>
</body>
</html>

:header

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:header</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<h1>Header 1</h1>
<p>Contents 1</p>
<h2>Header 2</h2>
<p>Contents 2</p>
<script type="text/javascript">
    $(function () {
        //匹配如 h1, h2, h3之类的标题元素
        $(":header").css("background", "#EEE");
    });
</script>
</body>
</html>

:animated

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:animated</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div id="box" style="width: 100px; height: 100px; background: #f00; position: absolute;"></div>
<script type="text/javascript">
    // 匹配所有正在执行动画效果的元素
    $(function () {
        $(function() {
            // 开始动画
            $("#box").animate({left: 500}, 5000);

            $(document).on("click", function() {
                // 在选择器中使用
                if($("#box:animated").length) {
                    $("body").append("<p>#box 尚在动画</p>");
                }
                // 在 is 中使用
                if(!$("#box").is(":animated")) {
                    $("body").append("<p>#box 动画停止</p>");
                }
            });
        });
    });
</script>
</body>
</html>

:focus

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:focus</title>
    <script src="js/jquery.js" type="text/javascript"></script>
    <style>
        .focused {
            background-color: blue;
        }
    </style>
</head>
<body>
<div id="content">
    <input tabIndex="1"><br/>
    <input tabIndex="2"><br/>
    <select tabIndex="3">
        <option>select menu</option>
    </select><br/>
    <div tabIndex="4">
        这是一段内容
    </div>
</div>
<script type="text/javascript">
    // 匹配当前获取焦点的元素。
    // 如同其他伪类选择器(那些以":"开始),建议:focus前面用标记名称或其他选择;否则,通用选择("*")是不言而喻的。换句话说,$(':focus')等同为$('*:focus')。如果你正在寻找当前的焦点元素,$( document.activeElement )将检索,而不必搜索整个DOM树。
    $(function () {
        $("#content").delegate("*", "focus blur", function (event) {
            var elem = $(this);
            setTimeout(function () {
                elem.toggleClass("focused", elem.is(":focus"));
            }, 0);
        });
    });
</script>
</body>
</html>

:root

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:root</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
    //选择该文档的根元素。
    // 在HTML中,文档的根元素,和$(":root")选择的元素一样, 永远是<html>元素

    $(function () {
        $(":root").css("background-color","yellow");
    });
</script>
</body>
</html>

:target

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:target</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
    //选择由文档URI的格式化识别码表示的目标元素。
    //如果文档的URI包含一个格式化的标识符,或hash(哈希), 然后:target选择器将匹配ID和标识符相匹配的元素。  例如,给定的URI http://example.com/#foo, $( "p:target" ),将选择<p id="foo">元素。
    //这个不寻常的用法,可进一步讨论中找到 W3C CSS specification.
    $(function () {

    });

</script>
</body>
</html>

内容选择器
:contains(text)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:contains(text)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn
<script type="text/javascript">
    //匹配包含给定文本的元素
    $(function () {
        $("div:contains('John')").css("color","blue");
    });
</script>
</body>
</html>

:empty

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:empty</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr><td>Value 1</td><td>Value 4</td></tr>
    <tr><td>Value 2</td><td></td></tr>
    <tr><td>Value 3</td><td></td></tr>
</table>
<script type="text/javascript">
    //匹配所有不包含子元素或者文本的空元素
    $(function () {
        $("td:empty").css("background-color","blue").css("width","100px");
    });
</script>
</body>
</html>

:has(selector)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:has(selector)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div><p>Hello</p></div>
<div>Hello again!</div>
<script type="text/javascript">
    //匹配含有选择器所匹配的元素的元素
    $(function () {
        $("div:has(p)").addClass("test").css("color","red");//在<div><p>Hello</p></div>中的div标签中加了一个class选择器
        // $("div:has(p)").css("color","red");
    });
</script>
</body>
</html>

:parent

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:parent</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr><td>Value 1</td><td>Value 4</td></tr>
    <tr><td>Value 2</td><td></td></tr>
    <tr><td>Value 3</td><td></td></tr>
</table>
<script type="text/javascript">
    //匹配含有子元素或者文本的元素
    $(function () {
        $("td:parent").css("color","red");
    });
</script>
</body>
</html>

:hidden

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:hidden</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr style="display:none"><td>Value 1</td></tr>
    <tr><td>Value 2</td></tr>
</table>
<form>
    <input type="text" name="email" value="123"/>
    <input type="hidden" name="id"/>
</form>
<script type="text/javascript">
    //匹配所有不可见元素,或者type为hidden的元素
    $(function () {
        $("tr:hidden").addClass("text");//在不可见元素的<tr style="display:none">中添加class选择器
        $("input:hidden").css("background-color","red");//type为hidden的元素的input标签中添加背景颜色
    });
</script>
</body>
</html>

:visible

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:visible</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<table>
    <tr style="display:none"><td>Value 1</td></tr>
    <tr><td>Value 2</td></tr>
</table>
<script type="text/javascript">
    //匹配所有的可见元素
    $(function () {
        $("tr:visible").css("color","red");//给所有的可见元素添加颜色
    });
</script>
</body>
</html>

[attribute]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>[attribute]</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div>
    <p>Hello!</p>
</div>
<div id="test2">div[id]</div>
<script type="text/javascript">
    //匹配包含给定属性的元素。注意,在jQuery 1.3中,前导的@符号已经被废除!如果想要兼容最新版本,只需要简单去掉@符号即可。
    $(function () {
        $("div[id]").css("color","red");
    });
</script>
</body>
</html>

[attribute=value]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>[attribute=value]</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<input type="checkbox" name="newsletter" value="Hot Fuzz" />
<input type="checkbox" name="newsletter" value="Cold Fusion" />
<input type="checkbox" name="accept" value="Evil Plans" />
<script type="text/javascript">
    //匹配给定的属性是某个特定值的元素
    //attribute属性名
    //value属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突
    $(function () {
        $("input[name='newsletter']").attr("checked", true);
    });
</script>
</body>
</html>

[attribute!=value]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>[attribute!=value]</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<input type="checkbox" name="newsletter" value="Hot Fuzz" />
<input type="checkbox" name="newsletter" value="Cold Fusion" />
<input type="checkbox" name="accept" value="Evil Plans" />
<script type="text/javascript">
        // 匹配所有不含有指定的属性,或者属性不等于特定值的元素。
        // 此选择器等价于 :not([attr=value]) 要匹配含有特定属性但不等于特定值的元素,请使用[attr]:not([attr=value])

    $(function () {
        $("input[name!='newsletter']").attr("checked", true);
    });
</script>
</body>
</html>

[attribute^=value]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>[attribute^=value]</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
newsletter:<input name="newsletter" /><br/>
milkman:<input name="milkman" /><br/>
newsboy:<input name="newsboy" /><br/>
<script type="text/javascript">
    //匹配给定的属性是以某些值开始的元素
    $(function () {
        $("input[name^='news']").css("background-color","red");//给定的属性是以news开始的元素背景设为红色
    });
</script>
</body>
</html>

[attribute$=value]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>[attribute$=value]</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
newsletter:<input name="newsletter" /><br/>
milkman:<input name="milkman" /><br/>
jobletter:<input name="jobletter" /><br/>
<script type="text/javascript">
    //匹配给定的属性是以某些值结尾的元素
    $(function () {
        $("input[name$='letter']").css("background-color","blue");//给定的属性是以letter结尾的元素背景设为蓝色
    });
</script>
</body>
</html>

[attribute*=value]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>[attribute*=value]</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
man-news:<input name="man-news" /><br/>
milkman:<input name="milkman" /><br/>
letterman2:<input name="letterman2" /><br/>
newmilk:<input name="newmilk" /><br/>
<script type="text/javascript">
    //匹配给定的属性是以包含某些值的元素
    $(function () {
        $("input[name*='man']").css("background-color","blue");//给定的属性是以包含man的元素背景设为蓝色
    });
</script>
</body>
</html>

[selector1][selector2][selectorN]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>[selector1][selector2][selectorN]</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<input id="man-news" name="man-news" /><br/>
<input name="milkman" /><br/>
<input id="letterman" name="new-letterman" /><br/>
<input name="newmilk" /><br/>
<script type="text/javascript">
    //复合属性选择器,需要同时满足多个条件时使用。
    $(function () {
        $("input[id][name$='man']").css("background-color","blue");//有input标签id属性name以man结尾的设置背景为蓝色
    });
</script>
</body>
</html>

子元素选择器
:first-child

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:first-child</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<ul>
    <li>John</li>
    <li>Karl</li>
    <li>Brandon</li>
</ul>
<ul>
    <li>Glen</li>
    <li>Tane</li>
    <li>Ralph</li>
</ul>
<script type="text/javascript">
    //匹配所给选择器( :之前的选择器)的第一个子元素
    //类似的:first匹配第一个元素,但是:first-child选择器可以匹配多个:即为每个父级元素匹配第一个子元素。这相当于:nth-child(1)

    $(function () {
        $("ul li:first-child").css("color","red");//在每个 ul 中查找第一个 li
    });
</script>
</body>
</html>

:first-of-type

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:first-of-type</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div id="n1">
    <div id="n2" class="abc">
        <label id="n3">label1</label>
        <span id="n4">span1</span>
        <span id="n5" class="abc">span2</span>
        <span id="n6">span3</span>
    </div>
    <div id="n7">
        <span id="n8" class="abc">span1</span>
        <span id="n9">span2</span>
    </div>
</div>
<script type="text/javascript">
    //结构化伪类,匹配E的父元素的第一个E类型的孩子。等价于:nth-of-type(1) 选择器。
    //解释的很模糊,网上搜了很多都是扯淡的解释,作者也只能自己一个个试,试了几十次才弄的稍微有点清楚,如果错了,慢点拍砖,怕怕。直接看示例。

    $(function () {
         // $("span:first-of-type").css("background-color","red");//所有子类中第一个span标签背景设为红色
        $(".abc:first-of-type").css("background-color","blue");//所有子类中第一个class="abc"背景设为蓝色
    });
</script>
</body>
</html>

:last-child

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:last-child</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<ul>
    <li>John</li>
    <li>Karl</li>
    <li>Brandon</li>
</ul>
<ul>
    <li>Glen</li>
    <li>Tane</li>
    <li>Ralph</li>
</ul>
<script type="text/javascript">
        // 匹配最后一个子元素
        // :last 只匹配最后一个元素,而此选择符将为每个父元素匹配最后一个子元素
    $(function () {
        $("ul li:last-child").css("color","red");//ul li最后一个元素设为红色
    });
</script>
</body>
</html>

:last-of-type

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:last-of-type</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
    // 结构化伪类,匹配E的父元素的最后一个E类型的孩子
    // 大体的意思跟 :first-of-type差不多,只是一个是第一个元素,一个是最后一个元素,这里就不赘述了。

    $(function () {
        
    });
</script>
</body>
</html>

:nth-child

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:nth-child</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<ul>
    <li>John</li>
    <li>Karl</li>
    <li>Brandon</li>
</ul>
<ul>
    <li>Glen</li>
    <li>Tane</li>
    <li>Ralph</li>
</ul>
<script type="text/javascript">

    // 匹配其父元素下的第N个子或奇偶元素
    // :eq(index) 匹配选择器指定序列的元素,而这个将为每一个父元素匹配子元素。
    // :nth-child从1开始的,而:eq()是从0算起的!可以使用:<br>nth-child(even)<br>:nth-child(odd)<br>:nth-child(3n)<br>:nth-child(2)<br>:nth-child(3n+1)<br>:nth-child(3n+2)参数
    $(function () {
        $("ul li:nth-child(2)").css("color","red");//ul li中第二个li设为红色
    });
</script>
</body>
</html>

:nth-last-child(n|even|odd|formula)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:nth-last-child(n|even|odd|formula)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
</ul>
<script type="text/javascript">
    // 选择所有他们父元素的第n个子元素。计数从最后一个元素开始到第一个。
    // 因为jQuery的实现:nth-child(n)是严格来自CSS规范,所以n值是“1索引”,也就是说,从1开始计数。对于所有其他选择器表达式,jQuery遵循JavaScript的“0索引”的计数。因此,给定一个单一<ul>包含两个<li>, $('li:nth-child(1)')选择第一个<li>,而$('li:eq(1)')选择第二个。
    // 这个不寻常的用法,可进一步讨论中找到W3C CSS specification.
    //n匹配子元素序号 必须为整数,注意从1开始而不是0
    //even 匹配所有偶数元素
    //odd 匹配所有奇数元素
    //formula  使用特殊公式如(an + b)进行选择. 例如:nth-last-child(3n+2) 从倒数第二个子元素开始,匹配每个3的倍数的元素
    $(function () {
        $("ul li:nth-last-child(2)").css("color","red");//父元素的第n个子元素。ul li中的li倒数第二个设为红色
    });
</script>
</body>
</html>

nth-last-of-type(n|even|odd|formula)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:nth-last-of-type(n|even|odd|formula)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
</ul>
<script type="text/javascript">
    // 选择的所有他们的父级元素的第n个子元素,计数从最后一个元素到第一个。
    // 因为jQuery的实现:nth-是严格来自CSS规范,n值是“1-indexed”,也就是说,从1开始计数。 对于所有其他选择器表达式比如:eq() 或 :even ,jQuery遵循JavaScript的“0索引”的计数。因此,给定一个单一<ul>包含3个<li>,$('li:nth-last-of-type(1)')选择第3个,也就是最后一个<li>。
    // 这个不寻常的用法,可进一步讨论中找到 W3C CSS specification.
    //n匹配子元素序号 必须为整数,注意从1开始而不是0
    //even 匹配所有偶数元素
    //odd 匹配所有奇数元素
    //formula  使用特殊公式如(an + b)进行选择. 例如:nth-last-child(3n+2) 从倒数第二个子元素开始,匹配每个3的倍数的元素
    $(function () {
        $("ul li:nth-last-of-type(2)").css("color","red");//所有他们的父级元素的第n个子元素,ul li中的li倒数第二个设为红色
    });
</script>
</body>
</html>

:nth-of-type(n|even|odd|formula)

<!DOCTYPE html>
<html>
<head>
    <title>:nth-of-type(n|even|odd|formula)</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<div>
    <span>John</span>
    <b>Kim</b>
    <span>Adam</span>
    <b>Rafael</b>
    <span>Oleg</span>
</div>
<div>
    <b>Dave</b>
    <span>Ann</span>
</div>
<div>
    <i><span>Maurice</span></i>
    <span>Richard</span>
    <span>Ralph</span>
    <span>Jason</span>
</div>
<script type="text/javascript">
    // 选择同属于一个父元素之下,并且标签名相同的子元素中的第n个。
    // 因为jQuery的实现:nth-是严格来自CSS规范,n值是“1-indexed”,也就是说,从1开始计数。对于所有其他选择器表达式比如:eq() 或 :even ,jQuery遵循JavaScript的“0索引”的计数。
    // 这个不寻常的用法,可进一步讨论中找到W3C CSS specification.

    $(function () {
        $("span:nth-of-type(2)").css("color","red");//父元素之下,并且标签名相同的子元素中的第2个。设为红色
    });
</script>
</body>
</html>

:only-child

<!DOCTYPE html>
<html>
<head>
    <title>:only-child</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<ul>
    <li>John</li>
    <li>Karl</li>
    <li>Brandon</li>
</ul>
<ul>
    <li>Glen</li>
</ul>
<script type="text/javascript">
    //如果某个元素是父元素中唯一的子元素,那将会被匹配
    // 如果父元素中含有其他元素,那将不会被匹配。(注:这里的其他元素并不包含文本节点,如:<p><img/>图片</p>,用$('p img:only-child')是可以匹配,感谢:nwujiajie 指正)
    $(function () {
        $("ul li:only-child").css("color","red");//某个元素是父元素中唯一的子元素.
    });
</script>
</body>
</html>

:only-of-type

<!DOCTYPE html>
<html>
<head>
    <title>:only-of-type</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
    //选择所有没有兄弟元素,且具有相同的元素名称的元素。
    // 如果父元素有相同的元素名称的其他子元素,那么没有元素会被匹配
    $(function () {
        
    });
</script>
</body>
</html>

表单选择器
:input

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:input</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <input type="button" value="Input Button"/><br/>
    <input type="checkbox" /><br/>
    <input type="file" /><br/>
    <input type="hidden" /><br/>
    <input type="image" /><br/>
    <input type="password" /><br/>
    <input type="radio" /><br/>
    <input type="reset" /><br/>
    <input type="submit" /><br/>
    <input type="text" /><br/>
    <select><option>Option</option></select><br/>
    <textarea></textarea><br/>
    <button>Button</button><br/>

</form>
<script type="text/javascript">
    //匹配所有 input, textarea, select 和 button 元素
    $(function () {
        $(":input").css("background-color","red");
    });
</script>
</body>
</html>

:text

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:text</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <input type="button" value="Input Button"/><br/>
    <input type="checkbox" /><br/>
    <input type="file" /><br/>
    <input type="hidden" /><br/>
    <input type="image" /><br/>
    <input type="password" /><br/>
    <input type="radio" /><br/>
    <input type="reset" /><br/>
    <input type="submit" /><br/>
    <input type="text" /><br/>
    <select><option>Option</option></select><br/>
    <textarea></textarea><br/>
    <button>Button</button><br/>
</form>
<script type="text/javascript">
    //匹配所有的单行文本框
    $(function () {
        $(":text").css("background-color","red");
    });
</script>
</body>
</html>

:password

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:password</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <input type="button" value="Input Button"/><br/>
    <input type="checkbox" /><br/>
    <input type="file" /><br/>
    <input type="hidden" /><br/>
    <input type="image" /><br/>
    <input type="password" /><br/>
    <input type="radio" /><br/>
    <input type="reset" /><br/>
    <input type="submit" /><br/>
    <input type="text" /><br/>
    <select><option>Option</option></select><br/>
    <textarea></textarea><br/>
    <button>Button</button><br/>
</form>
<script type="text/javascript">
    //匹配所有密码框
    $(function () {
        $(":password").css("background-color", "red");
    });
</script>
</body>
</html>

:radio

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:radio</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <input type="button" value="Input Button"/><br/>
    <input type="checkbox" /><br/>
    <input type="file" /><br/>
    <input type="hidden" /><br/>
    <input type="image" /><br/>
    <input type="password" /><br/>
    <input type="radio" value="提交登录"/>提交登录<br/>
    <input type="reset" /><br/>
    <input type="submit" /><br/>
    <input type="text" /><br/>
    <select><option>Option</option></select><br/>
    <textarea></textarea><br/>
    <button>Button</button><br/>
</form>
<script type="text/javascript">
    //匹配所有单选按钮
    $(function () {
        $(":radio").css("height","30px").css("width","30px");
    });
</script>
</body>
</html>

:checkbox

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:checkbox</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <input type="button" value="Input Button"/><br/>
    <input type="checkbox" name="like" value="篮球"/>篮球<input type="checkbox" name="like" value="乒乓球"/>乒乓球<br/>
    <input type="file" /><br/>
    <input type="hidden" /><br/>
    <input type="image" /><br/>
    <input type="password" /><br/>
    <input type="radio" /><br/>
    <input type="reset" /><br/>
    <input type="submit" /><br/>
    <input type="text" /><br/>
    <select><option>Option</option></select><br/>
    <textarea></textarea><br/>
    <button>Button</button><br/>
</form>
<script type="text/javascript">
    //匹配所有复选框
    $(function () {
        $(":checkbox").attr("checked", true).css("height","30px").css("width","30px");
    });
</script>
</body>
</html>

:submit

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:submit</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<input type="button" /><br/>
<input type="checkbox" /><br/>
<input type="file" /><br/>
<input type="hidden" /><br/>
<input type="image" /><br/>
<input type="password" /><br/>
<input type="radio" /><br/>
<input type="reset" /><br/>
<input type="submit" value="提交登录"/><br/>
<input type="text" /><br/>
<select><option>Option</option></select><br/>
<textarea></textarea><br/>
<button>Button</button><br/>
<script type="text/javascript">
    // 匹配所有提交按钮
    $(function () {
        $(":submit").css("background-color","red");
    });
</script>
</body>
</html>

:image

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:image</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<input type="button" /><br/>
<input type="checkbox" /><br/>
<input type="file" /><br/>
<input type="hidden" /><br/>
<input type="image" /><br/>
<input type="password" /><br/>
<input type="radio" /><br/>
<input type="reset" /><br/>
<input type="submit"/><br/>
<input type="text" /><br/>
<select><option>Option</option></select><br/>
<textarea></textarea><br/>
<button>Button</button><br/>
<script type="text/javascript">
    //匹配所有图像域
    $(function () {
        $(":image").css("background-color","red");
    });
</script>
</body>
</html>

:reset

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:reset</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<input type="button" /><br/>
<input type="checkbox" /><br/>
<input type="file" /><br/>
<input type="hidden" /><br/>
<input type="image" /><br/>
<input type="password" /><br/>
<input type="radio" /><br/>
<input type="reset" /><br/>
<input type="submit"/><br/>
<input type="text" /><br/>
<select><option>Option</option></select><br/>
<textarea></textarea><br/>
<button>Button</button><br/>
<script type="text/javascript">
    // 匹配所有重置按钮
    $(function () {
        $(":reset").css("background-color","red")
    });
</script>
</body>
</html>

:button

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:button</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<input type="button" value="button"/><br/>
<input type="checkbox" /><br/>
<input type="file" /><br/>
<input type="hidden" /><br/>
<input type="image" /><br/>
<input type="password" /><br/>
<input type="radio" /><br/>
<input type="reset" /><br/>
<input type="submit"/><br/>
<input type="text" /><br/>
<select><option>Option</option></select><br/>
<textarea></textarea><br/>
<button>Button</button><br/>
<script type="text/javascript">
    //匹配所有按钮
    $(function () {
        $(":button").css("background-color","red");
    });
</script>
</body>
</html>

:file

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:file</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<input type="button" /><br/>
<input type="checkbox" /><br/>
<input type="file" /><br/>
<input type="hidden" /><br/>
<input type="image" /><br/>
<input type="password" /><br/>
<input type="radio" /><br/>
<input type="reset" /><br/>
<input type="submit"/><br/>
<input type="text" /><br/>
<select><option>Option</option></select><br/>
<textarea></textarea><br/>
<button>Button</button><br/>
<script type="text/javascript">
    //匹配所有文件域
    $(function () {
        $(":file").css("background-color","red");
    });
</script>
</body>
</html>

表单对象属性选择器
:enabled

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:enabled</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <input name="email" disabled="disabled" /><br/>
    <input name="id" />
</form>
<script type="text/javascript">
    //匹配所有可用元素
    $(function () {
        $("input:enabled").css("background-color","red");
    });
</script>
</body>
</html>

:disabled

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:disabled</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <input name="email" disabled="disabled" /><br/>
    <input name="id" />
</form>
<script type="text/javascript">
    //匹配所有不可用元素
    $(function () {
        $("input:disabled").css("background-color","blue");
    });
</script>
</body>
</html>

:checked

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:checked</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<form>
    <input type="checkbox" name="newsletter" checked="checked" value="Daily" /><br/>
    <input type="checkbox" name="newsletter" value="Weekly" /><br/>
    <input type="checkbox" name="newsletter" checked="checked" value="Monthly" /><br/>
</form>
<script type="text/javascript">
    //匹配所有选中的被选中元素(复选框、单选框等,select中的option),对于select元素来说,获取选中推荐使用 :selected
    $(function () {
        $("input:checked").attr("checked", true);
    });
</script>
</body>
</html>

:selected

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>:selected</title>
    <script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<select>
    <option value="1">Flowers</option>
    <option value="2" selected="selected">Gardens</option>
    <option value="3">Trees</option>
</select>
<script type="text/javascript">
    //匹配所有选中的option元素
    $(function () {
        $("select option:selected").css("color","red");
    });
</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值