`
天梯梦
  • 浏览: 13630556 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

jQuery: 选择器(DOM,name,属性,元素)

 
阅读更多

出处:http://www.cnblogs.com/starof/p/5411457.html

 

大部分选择器都是基于下面这个简单的页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div,span,p{
            width: 140px;
            height: 140px;
            margin: 5px;
            background: #aaa;
            border:#000 1px solid;
            float: left;
            font-size: 17px;
            font-family: Verdana, Geneva, sans-serif;
        }
        div.mini{
            width: 55px;
            height: 55px;
            background-color: #aaa;
            font-size: 12px;
        }
        div.hide{
            display: none;
        }
    </style>
    <script src="http://code.jquery.com/jquery-2.2.3.js" ></script>
</head>
<body>
    <div class="one" id="one">
        id 为one,class为one的div
        <div class="mini">class为mini</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 class="mini" title="test">class为mini,title为test</div>
    </div>
    <div class="one">
        <div class="mini">class为mini</div>
        <div class="mini">class为mini</div>
        <div class="mini">class为mini</div>
        <div class="mini"></div>
    </div>
    <div class="one">
        <div class="mini">class为mini</div>
        <div class="mini">class为mini</div>
        <div class="mini">class为mini</div>
        <div class="mini" title="tesst">class为mini,title为tesst</div>
    </div>
    <div class="none" style="display: none;">
        style的display为"none"的div
    </div>
    <div class="hide">class为“hide”的div</div>
    <div>
        包含input的type为"hidden"的div <input type="text" class="hidden" size="8">
    </div>
    <span id="mover">正在执行动画的span元素.</span>
</body>
</html>

 

效果如下:

jQuery: 选择器(DOM,name,属性,元素)

 

一、基本选择器

改变id为one的元素的背景色:

$("#one").css("background","#bbffaa");

 

jQuery: 选择器(DOM,name,属性,元素)

改变class为mini的所有元素的背景色:

$(".mini").css("background","#bbffaa");

 

jQuery: 选择器(DOM,name,属性,元素)

改变元素名是<div> 的所有元素的背景色

$("div").css("background","#bbffaa");

 

jQuery: 选择器(DOM,name,属性,元素)

改变所有元素的背景色

$("*").css("background","#bbffaa");

 

jQuery: 选择器(DOM,name,属性,元素)

改变所有的<span>元素和id未two的元素的背景色

$("span,#two").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

 

二、层次选择器

改变<body>内所有<div>的背景色。

$("body div").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

改变<body>内子<div>的背景色。

$("body>div").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

改变class为one的下一个<div>同辈元素的背景色。

$(".one+div").css("background","#bbffaa");

 

 

等价于

$(".one").next("div").css("background","#bbffaa");

 

 

包含input的type为"hidden"的div并不是class为one的下一个同辈元素,因为中间有有两个元素隐藏了。

jQuery: 选择器(DOM,name,属性,元素)

改变id为two的元素后面的所有<div> 同辈元素的背景色。

$("#two~div").css("background","#bbffaa");

 

 

等价于

$("#two").nextAll("div").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

$("prev~siblings")和jquery中siblings()的区别: siblings()与前后位置无关,只有是同辈节点就都能匹配。

$("#two").siblings("div").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

 

三、过滤选择器

过滤选择器按过滤规则可分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤、和表单对象属性过滤选择器。

 

1、基本过滤选择器

:first选取第一个元素。

例:$("div:first")选取所有<div>中第一个<div>。

:last选取最后一个元素。

例:$("div:last")选取所有<div>中最后一个<div>。

:not(selector)去除所有与给定选择器匹配的元素。

例:$("input:not(.myClass)") 选取class不是myClass的<input>元素。

改变class不为one的元素的背景色。

$("div:not(.one)").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

:even选取索引是偶数的所有元素,索引从0开始。

例:$("input:even")选取索引是偶数的<input>元素。

:odd选取索引是奇数的所有元素,索引从0开始。

例:$("input:odd")选取索引是奇数的<input>元素。

:eq(index) 选取索引等于index的元素(index从0开始)。

例:$("input:eq(1)")选取索引等于1的<input>元素。

:gt(index)选取索引大于index的元素(index从0开始)。

例:$("input:gt(1)")选取索引大于1的<input>元素。(大于1而不等于1

:lt(index)选取索引小于index的元素(index从0开始)。

例:$("input:lt(1)")选取索引小于1的<input>元素。(小于1而不等于1

:header选取所有的标题元素,例如h1,h2,h3等。

例:$(":header")选取网页中所有的<h1>,<h2>...

:animated:选取当前正在执行动画的所有元素。

例:$("div:animated")选取正在执行动画的<div>元素。

:focus:选取当前获取焦点的元素。

例:$(":focus")选取当前获取焦点的元素。

 

2、内容过滤选择器

内容过滤选择器的过滤规则主要体现在它所包含的子元素或文本内容上。

:contains(text):选取含有文本内容为"text"的元素。

$("div:contains('我')")选取含有文本"我"的<div>元素。

:empty选取不包含子元素或者文本的空元素

$("div:empty")选取不包含子元素(包括文本元素)的<div>空元素。

:has(selector)选取含有选择器所匹配的元素的元素。

$("div:has(p)")选取含有<p>元素的<div>元素。

:parent选取含有子元素或者文本的元素。

$("div:parent")选取拥有子元素(包括文本元素)的<div>元素。

例子:

改变含有文本“di”的<div>元素的背景色。

$("div:contains('di')").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

改变不包含子元素(包括文本元素)的<div>空元素背景色。

$("div:empty").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

改变含有class为mini元素的<div> 元素的背景色。

$("div:has('.mini')").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

改变含有子元素(包含文本元素)的<div>元素的背景色。

$("div:parent").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

 

3、可见性过滤选择器

可见性过滤选择器是根据元素的可见和不可见状态来选择相应的元素。

:hidden选取所有不可见的元素。

$("hidden")选取所有不可见的元素。包括<input type="hidden">,<div style="display:none">和<div style="visibility:hidden">等元素,如果只想选取<input>元素,可以使用$("input :hidden")。

:visible选取所有可见的元素。

$("div:visible")选取所有可见的<div>元素。

例:显示隐藏的<div> 元素。show()是jquery方法,3000是事件,单位毫秒。

$("div:hidden").show(3000);

 

 

jQuery: 选择器(DOM,name,属性,元素)

4、属性过滤选择器

属性过滤选择器通过元素的属性来获取相应的元素。

[attribute]:选取拥有此属性的元素。

[attribute1][attribute2][attributeN]用属性选择器合并成一个符合属性选择器,满足多个条件。每选择一次,缩小一次范围。

[attribute=value]选取属性值为value的元素。

[attribute!=value]选取属性值不为value的元素。

[attribute^=value]选取属性值以value开始的元素。

[attribute$=value]选取属性值以value结束的元素。

[attribute*=value]选取属性值含有value的元素。

[attribute|=value]选取属性等于给定字符串或以给定字符串为前缀(该字符串后跟一个连字符“-”)的元素。

[attribute~=value]选取属性用空格分隔的值中包含一个给定值的元素。

改变含有属性为title的<div>元素的背景色。

 

正确写法:

$("div[title]").css("background","#bbffaa");

 

 

错误写法:

$("div['title']").css("background","#bbffaa"); //title不能加引号

 

 

jQuery: 选择器(DOM,name,属性,元素)

改变title值等于“test” 的<div>元素的背景色

正确写法:

$("div[title='test']").css("background","#bbffaa");  //test值加引号
$("div[title=test]").css("background","#bbffaa");   //test值不加引号

 

 

jQuery: 选择器(DOM,name,属性,元素)

一个专为易混属性选择器准备的demo。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{
            width: 140px;
            height: 140px;
            margin: 5px;
            background: #aaa;
            border:#000 1px solid;
            float: left;
            font-size: 17px;
            font-family: Verdana, Geneva, sans-serif;
        }
    </style>
</head>
<body>
    <div title="en">title为en的div元素</div>
    <div title="en-UK">title为en-UK的div元素</div>
    <div title="english">title为engliashi的div元素</div>
    <div title="en uk">title为en uk的div元素</div>
    <div title="uken">title为uken 的div元素</div>
</body>
</html>

 

 

jQuery: 选择器(DOM,name,属性,元素)
$("div[title^=en]").css("background","#bbffaa");    //改变title值以"en"开始的<div>的背景色
$("div[title*=en]").css("background","#bbffaa");    //改变title值含有"en"的<div>的背景色
$("div[title|=en]").css("background","#bbffaa");    //改变属性title等于en或以en为前缀(该字符串后面跟一个连字符“-”)的字符串。
jQuery: 选择器(DOM,name,属性,元素)
$("div[title~=uk]").css("background","#bbffaa");    //改变属性title用空格分隔的值中包含字符串uk的元素的背景色
 
jQuery: 选择器(DOM,name,属性,元素)

 

5、子元素过滤选择器

:first-child 选取元素,且该元素是其父元素的第一个子元素。

:last-chld 选取元素,且该元素是其父元素的最后一个子元素。

:only-child 选取元素,且该元素是其父元素的唯一子元素。

:nth-child(index/even/odd/equation)常用且重要

  • :nth-child(even) 选取每个父元素下的索引指是偶数的元素。
  • :nth-child(odd) 选取每个父元素下的索引值是奇数的元素。
  • :nth-child(2) 选取每个父元素下的索引值等于2的元素。
  • :nth-child(3n) 选取每个父元素下的索引值是3的倍数的元素。(n从1开始)。
  • :nth-child(3n+1) 选取每个父元素下的索引值是(3n+1)的元素。(n从1开始)。

demo:改变每个class为one的<div> 父元素下的第2个子元素的背景色。

$("div.one :nth-child(2)").css("background","#bbffaa");

 

 

jQuery: 选择器(DOM,name,属性,元素)

对比:

eq(index) 只匹配一个元素。eq(index)的index从0开始。

:nth-child(index) 将为每一个符合条件的父元素匹配子元素。:nth-child(index)的index从0开始。

 

6、表单对象属性过滤选择器

对所选择的表单元素进行过滤,例如选择被选中的下拉框,多选框等元素。

:enabled 选取所有可用元素。http://i.cnblogs.com/EditPosts.aspx?postid=5411457

:disabled 选取所有不可用的元素。

:checked 选取所有被选中的元素(单选框,复选框)。

:selected 选取所有被选中的选项元素(下拉列表)。

专为表单对象属性过滤选择器准备的例子:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>demo of starof</title>
    <script src="http://code.jquery.com/jquery-2.2.3.js"></script>
</head>

<body>
    <form action="#" id="form1">
        可用元素:
        <input type="text" name="add" value="可用文本框">
        <br> 不可用元素:
        <input type="text" name="email" disabled="disabled" value="不可用文本框">
        <br> 可用元素:
        <input type="text" name="che" value="可用文本框">
        <br> 不可用元素:
        <input type="text" name="name" disabled="disabled" value="不可用文本框">
        <br>
        <br> 多选框:
        <br>
        <input type="checkbox" name="newsletter" checked="checked" value="test1"> test1
        <input type="checkbox" name="newsletter" value="test2"> test2
        <input type="checkbox" name="newsletter" value="test3"> test3
        <input type="checkbox" name="newsletter" checked="checked" value="test4">test4
        <input type="checkbox" name="newsletter" value="test5"> test5
        <div></div>
        <br>
        <br>
        <select name="test" id="" multiple style="height:100px;">
            <option value="">浙江</option>
            <option value="" selected="selected">湖南</option>
            <option value="">北京</option>
            <option value="" selected="selected">天津</option>
            <option value="">广州</option>
            <option value="">湖北</option>
        </select>
        <br>
        <br> 下拉列表2:
        <br>
        <select name="test2" id="">
            <option value="">浙江</option>
            <option value="">湖南</option>
            <option value="" selected="selected">北京</option>
            <option value="">天津</option>
            <option value="">广州</option>
            <option value="">湖北</option>
        </select>
    </form>
</body>

</html>

 

 

改变表单内可用<input>元素的值。

Note:像input(select,checkbox textarea radio)这样的替换元素,获取值和赋值只能用value。了解更多可参考:DOM

    //$("#form1 input:enabled").text("变化了");    //错误
    //$("#form1 input:enabled").html("变化了");    //错误
    $("#form1 input:enabled").val("变化了");        //正确

 

 

获取多选框选中的个数:

$("#form1 input:checked").length

 

 

获取下拉框选中的内容:

$("#form1 :selected").text()

 

 

四、表单选择器

:input 选取所有的<input> ,<textarea>,<select>和<button>元素。

例:$(":input")选取所有<input>,<textarea>,<select>和<button>元素。

:text 选取所有的单行文本框

:password 选取所有的密码框。

:radio 选取所有的单选框。

:checkbox 选取所有的多选框。

:submit选取所有的提交按钮。

:image 选取所有的图像按钮。

:reset 选取所有的重置按钮。

:button 选取所有的按钮。

:file选取所有的上传域。

:hidden 选取所有不可见元素。

 

表单选择器例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo of starof</title>
    <script src="http://code.jquery.com/jquery-2.2.3.js"></script>
</head>
<body>
    <form action="#" id="form1">
        <input type="button" value="Button"><br>
        <input type="checkbox" name="c">1
        <input type="checkbox" name="c">2
        <input type="checkbox" name="c">3 <br>
        <input type="file"><br>
        <input type="hidden"><div style="display:none">test</div><br>
        <input type="image"><br>
        <input type="password"><br>
        <input type="radio" name="a">1<input type="radio" name="a">2 <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>
    </form>
</body>
</html>

 

 

区别:$("#form1 :input")和$("#form1 input")

<script>
        alert($("#form1 :input").length);        //表单内表单元素的个数16
        alert($("#form1 input").length);         //表单内input元素个数13
        
</script>

 

 

 

更多参考:

jQuery: 操作select option方法集合

Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)

jQuery: 插件开发模式详解 $.extend(), $.fn, $.widget()

jQuery:从零开始,DIY一个jQuery(1)

jQuery:从零开始,DIY一个jQuery(2)

高性能JavaScript DOM编程

DOM Element节点类型详解

Javascript操作DOM常用API总结

 

本文转自:jQuery: 选择器(DOM,name,属性,元素)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    【JavaScript源代码】js实现类选择器和name属性选择器的示例步骤.docx

     jQuery的出现,大大的提升了我们操作dom的效率,使得我们的开发更上一层楼,如jQuery的选择器就是一个很强大的功能,它包含了类选择器、id选择器、属性选择器、元素选择器、层级选择器、内容筛选选择器等等,很是...

    jQuery 选择器、DOM操作、事件、动画

    Jquery选择器 $(document).ready(function(){}) $(function(){}) 如果获取的对象是jQuery对象,那么在变量前面加上$,例如:var $variable=jQuery对象 选择器 1, 判断页面是否存在某元素:if($(“#tt”).length&gt;0){...

    jquerydemo

    8. 属性过滤选择器 9. 子元素过滤选择器 10. 表单元素过滤选择器 11. 小结1 12. 选择器练习 13. 创建和插入节点 14. 重写 JS 实验之分类添加内容 15. 删除及清空节点 16. 重写 JS 实验之员工管理 17. 克隆和替换...

    node-zcsel:ZéCSS选择器-JQuery“种类”CSS选择器

    tagName标签选择器:选择具有给定标签名称的所有元素; #id -ID选择器:选择具有给定id属性的单个元素; .class类选择器:选择具有给定类的所有元素; ancestor descendant -后代选择器:选择作为给定祖先的后代...

    常用jQuery选择器总结

    其中过滤选择器可以分为:简单过滤选择器、内容过滤选择器、可见性过滤选择器、属性过滤选择器、子元素过滤选择器、表单对象属性过滤选择器。 基本选择器: $(“#myELement”) 选择id值等于myElemen

    详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法

    jQuery中操纵元素属性的方法:  attr(): 读或者写匹配元素的属性值.  removeAttr(): 从匹配的元素中移除指定的属性. attr()方法 读操作  attr()读操作. 读取的是匹配元素中第一个元素的指定属性值.  格式: ....

    jquery获取并修改触发事件的DOM元素示例【基于target 属性】

    本文实例讲述了jquery获取并修改触发事件的DOM元素。分享给大家供大家参考,具体如下: 需求 当点击关注后,改变按钮样式并显示取消关注,如图     实现 利用jQuery的 target获取到触发该事件的dom,然后修改它 ...

    jQuery权威指南-源代码

    2.2 jQuery选择器详解/17 2.2.1 基本选择器/18 2.2.2 层次选择器/20 2.2.3 简单过滤选择器/22 2.2.4 内容过滤选择器/25 2.2.5 可见性过滤选择器/27 2.2.6 属性过滤选择器/28 2.2.7 子元素过滤选择器/30 ...

    jQuery详细教程

    jQuery 元素选择器和属性选择器允许您通过标签名、属性名或内容对 HTML 元素进行选择。 选择器允许您对 HTML 元素组或单个元素进行操作。 在 HTML DOM 术语中: 选择器允许您对 DOM 元素组或单个 DOM 节点进行操作。...

    jQuery完全实例.rar

    这个函数接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素。 jQuery 的核心功能都是通过这个函数实现的。 jQuery中的一切都构建于这个函数之上,或者说都是在以某种方式使用这个函数。这个函数最...

    jquery-1.12.4.js

    jQuery的选择机制构建于Css的选择器,它提供了快速查询DOM文档中元素的能力,而且大大强化了JavaScript中获取页面元素的方式。

    jQuery选择器基础入门教程

    本文实例讲述了jQuery选择器用法。分享给大家供大家参考,具体如下: 什么是jQuery选择器 使用JavaScript操作页面上得DOM元素时,首先要获取DOM元素。但是原始的javascript只元件根据ID或者TagName获取DOM对象。 在...

    jquery入门—选择器实现隔行变色实例代码

    1、JQuery选择器继承了CSS、path语音的部分语法,允许通过标签名、属性名、内容对DOM元素进行快速、准确的选择。 2、JQuery选择器与JavaScript相比,具有代码简单、完善的检测机制的优势。 3、使用JQuery选择器实现...

    使用jQuery操作DOM的方法小结

    一.DOM操作分为3类 1.DOM Core DOM Core不是Javascript的专属品,任何一种支持DOM的编程语言都可以使用它.它的用途不仅限于处理一种使用标记语言编写出来的文档 ...css({name:value,name:value,name:value...

    从零开始学习jQuery (二) 万能的选择器

    jQuery选择器能彻底改变我们平时获取对象的方式, 可以获取几乎任何语意的对象, 比如”拥有title属性并且值中包含test的元素”, 完成这些工作只需要编写一个jQuery选择器字符串. 学习jQuery选择器是学习jQuery最重要...

    Jquery学习手册

    multiple(selector1, selector2),可以选择多个元素或者表达式,包装成jQuery对象的集合 例子:$("div,span") id(id) 例子:$("#id") class(class) 例子:$(".class") element(element) 例子:$("div")

    JavaScipt选取文档元素的方法(推荐)

    摘自JavaScript权威指南(jQuery根据样式选择器查找元素的终极方式是 先用getElementsByTagName(*)获取所有DOM元素,然后根据样式选择器对所有DOM元素进行筛选) 选取文档元素的方法: 1、通过ID选取元素...

    基于jQuery选择器的整理集合

    jquery对象访问1、each(callback):以每个匹配的元素作为上下文来执行一个函数,return false;...3、get():取得所有匹配的DOM元素集合(注意返回是dom对象,而非jquery对象) 代码如下:$(“img”).get

    jQuery中element选择器用法实例

    本文实例讲述了jQuery中element选择器用法。分享给大家供大家参考。具体分析如下: 此选择器能够匹配具有指定标签名的元素。例如: 代码如下:$(“div”) 以上代码能够选取所有的div元素。 语法结构: 代码如下:$...

    jQuery函数的第二个参数获取指定上下文中的DOM元素

    jQuery函数的第二个参数可以指定DOM元素的搜索范围。 第二个参数可分为以下类型 DOM reference jQuery wrapper document 代码示例 代码如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;body&gt; &lt;form&gt; &lt;input ...

Global site tag (gtag.js) - Google Analytics