爱收集资源网

编写任何javascript程序我们要首先获得对象jQuery选择器

网络整理 2022-05-16 18:01

在编写任何 javascript 程序时,我们必须首先获取对象。 jQuery 选择器可以完全改变我们通常获取对象的方式。我们几乎可以得到任何语义对象,比如“一个带有title属性和一个包含test的值的元素”,完成这些工作只需要编写一个jQuery选择器字符串。

Dom 对象和 jQuery 包装集

无论是编写程序还是阅读API文档,都要时刻注意区分Dom对象和jQuery Package set。

1.Dom对象

在传统的javascript开发中,我们都是先获取Dom对象,比如:

var div = document.getElementById("testDiv");

var divs = document.getElementsByTagName("div");

我们经常使用document.getElementById方法通过id获取单个Dom对象,或者使用document.getElementsByTagName方法根据HTML标签名获取Dom对象集合。

另外jq通过属性找父类jq通过属性找父类,在事件函数中,可以在方法函数中使用this来引用事件触发对象(但是IE6中存在多播事件函数的问题),或者使用事件对象的target(FF)或者srcElement( iIE6) 获取引发事件的 Dom 对象。

注意这里得到的都是Dom对象,Dom对象也有不同的类型,比如input、div、span等。Dom对象只有有限的属性和方法:

2.jQuery 包装集

jQuery wrapper set 可以说是Dom 对象的扩展。在jQuery的世界里,所有的对象,无论是一个还是一组,都被打包成一个jQuery wrapper set,比如得到一个包含一个元素的jQuery wrapper set:

var jQueryObject = $("#testDiv");

jQuery 包装器作为对象一起调用。 jQuery 包装器具有丰富的属性和方法,它们是 jQuery 特有的:

3.Dom对象与jQuery对象的转换

(1) Dom 到 jQuery Wrapper Set

如果你想使用jQuery提供的功能,你必须先构造一个jQuery wrapper set。我们可以使用本文要介绍的jQuery选择器直接构造一个jQuery包装器集,如:

$("#testDiv");

上述语句构造的包装集只包含一个id为testDiv的元素。

或者我们已经获取了一个Dom元素,比如:

var div = document.getElementById("testDiv");

上面代码中的div是一个Dom元素,我们可以将Dom元素转换成一个jQuery wrapper set:

var domToJQueryObject = $ (div);

(2)jQuery 包装器设置为 Dom 对象

jQuery wrapper set 是一个集合,因此我们可以通过索引器访问其中一个元素:

var domObject = $("#testDiv")[0];

请注意,索引器返回的不再是一个 jQuery 包装器集,而是一个 Dom 对象!

p>

jQuery包集的一些遍历方法,比如each(),可以传递一个遍历函数,而遍历函数中的this也是一个Dom元素,比如:

$("#testDiv" ).each(function() { alert(this) })

如果我们想使用 jQuery 方法来操作 Dom 对象怎么办?只需使用上述转换方法即可:

$("#testDiv").each(function() { $(this).html("修改内容") })

jQuery 选择器完整解决方案

Popular 换句话说,Selector 选择器是“具有特殊语义的字符串”。只需将选择器字符串传递给上述方法即可选择不同的 Dom 对象并将它们作为 jQuery 包装集返回。

jQuery选择器按功能主要分为“选择”和“过滤”。它们一起使用。它们可以一起使用以形成选择器字符串。主要区别在于“过滤”的选择器是指定条件从前面的匹配内容中过滤,“过滤”选择器也可以单独使用,即从所有“*”中过滤。例如:

$(":[标题]")

相当于:

$("*:[标题]")

“select”函数的选择器不会有默认范围,因为该函数是“select”而不是“filter”。

在以下选择器类别中,带有“过滤器”的类别表示它是“过滤器”选择器,否则是“选择”功能的选择器。

1.基本选择器基础

名字

说明

例子

根据元素ID选择

$("divId") 选择ID为divId的元素

根据元素名称选择,

$("a") 选择所有元素

根据元素css类选择

$(".bgRed" ) 选择 CSS 类为 bgRed 的元素

*

选择所有元素

$("*") 选择页面的所有元素

您可以用“,”分隔多个选择器,然后将它们拼成一个选择器字符串。这些选择器匹配的内容会同时被选中。

$("#divId, a, .bgRed")

2.层次结构

名字

说明

例子

使用“表单输入”的形式选择表单中的所有输入元素。即祖先(ancestor)为from,后代(descendant)为输入。

$(".bgRed div") 选择 CSS 类作为 bgRed 中的所有元素

元素。

选择父节点的直接子节点子节点。 child 必须包含在 parent 中,并且 parent 是父元素。

$(".myList>li") 选择 CSS 类作为 myList 元素中的直接子节点对象。

prev 和 next 是同一级别的两个元素。选择上一个元素之后的下一个元素。

$("#hibiscus+img") 选择id为hibiscus的元素后面的img对象。

选择prev之后被兄弟过滤的元素

注意:兄弟姐妹是一个过滤器

$("#someDiv~[title]") 选择id为someDiv的对象后面所有带有title属性的元素

3.基本过滤器基本过滤器

名字

说明

例子

:第一

匹配找到的第一个元素

找到表格的第一行:$("tr :first")

:最后

匹配找到的最后一个元素

查找表的最后一行:$("tr:last")

删除所有匹配给定选择器的元素

查找所有未选中的输入元素:$("input:not(:checked)")

:偶数

匹配所有具有偶数索引的元素,从 0 开始计数

查找表的1、3、5...行:$ ("tr:even")

:奇数

匹配所有具有奇数索引的元素,从 0 开始

查找表的 2、@ >4、第 6 行:$("tr:odd")

匹配具有给定索引值的元素

注意:索引从0开始计数

找到第二行:$("tr:eq(1)")

匹配所有大于给定索引值的元素

注意:索引从0开始计数

找到第二行和第三行,即索引值为1和2,即大于0:$("tr:gt(0)")

选择结果集中索引小于N的元素

注意:索引从0开始计数

找到第一行和第二行,即索引值为0和1,即小于2:$("tr:lt(2)")

:标题

选择所有标题标签,如 h1、h2、h3。

为页面中的所有标题添加背景颜色:$(":header").css("background", "#EEE");

:动画

匹配所有执行动画效果的元素

只对不执行动画效果的元素执行动画效果:

$("#run").click(function(){

$("div:not(:animated)").animate({ left: "+=20" }, 1000);

});

4.内容过滤器

名字

说明

例子

匹配包含给定文本的元素

查找所有包含“John”的 div 元素:$(" div:contains('John')")

:空

匹配所有不包含子元素或文本的空元素

查找所有不包含子元素或文本的空元素:$("td:empty")

匹配包含选择器匹配的元素的元素

为所有包含 p 元素的 div 元素添加一个文本类:$("div:has(p)").addClass("test");

:父母

将元素与子元素或文本匹配

查找所有带有子元素或文本的 td 元素:$("td:parent")

5.可见性过滤器

名字

说明

例子

:隐藏

匹配所有不可见元素

注意:在 1.< 在@3.2 版本中,隐藏匹配其自身或父类不占用文档空间的元素。如果使用 CSS 的可见性属性使其不可见但占用空间,请不要输入 hidden。

查找所有不可见的 tr 元素:$("tr:hidden")

:可见

匹配所有可见元素

查找所有可见的 tr 元素:$ ("tr:visible")

6.属性过滤器

名字

说明

例子

p>

匹配包含给定属性的元素

查找所有具有 id 属性的 div 元素:

$("div[id]")

匹配给定属性为特定值的元素

查找 name 属性为 newsletter 的所有输入元素:

$("input[name='newsletter']") .attr("checked", true);

匹配不包含给定属性的特定值的元素

查找 name 属性不是 newsletter 的所有输入元素:

p>

$("input[name!='newsletter']").attr("checked", true);

匹配给定属性以某个值开头的元素

$("输入[名称^='新闻']")

匹配给定属性以某个值结尾的元素

查找所有以“字母”结尾的名称结尾的输入元素:

$("输入[name$='字母']")

将给定属性匹配为包含某个值的元素

查找名称中包含“man”的所有输入元素:

$("输入[name*='man']")

复合属性选择器,需要同时满足多个条件时使用。

查找所有 id 且 name 属性以 man 结尾的属性:

$("输入[id][name$='man']")

p>

7.子过滤器

名字

说明

例子

匹配其父元素下的第N个子元素或奇偶元素

':eq(index)' 只匹配一个元素,这个元素会匹配每个父元素的子元素。 :nth-child 从 1 开始, :eq() 从 0 开始!

你可以使用:

nth-child(偶数)

:nth-child(奇数)

:nth-child(3n)

:nth-child(2)

:nth-child(3n+1)

:nth-child(3n+2)

在每个 ul 中找到第二个 li:

$("ul li:nth-child(2)")

:第一个孩子

匹配第一个子元素

':first' 只匹配一个元素,这个选择器会匹配每个父元素一个子元素

找到每个 ul 中的第一个 li:

$("ul li:first-child")

:最后一个孩子

匹配最后一个子元素

':last' 只匹配一个元素,而此选择器将匹配每个父元素的一个子元素

在每个ul中找到最后一个li:

$("ul li:last-child")

:独生子女

如果一个元素是其父元素中唯一的元素,它将被匹配。

如果父元素包含其他元素,则不匹配。

在ul中查找li是唯一的子元素:

$("ul li:only-child")

8.表单选择器表单

名字

说明

解释

:输入

匹配所有输入、文本区域、选择和按钮元素

查找所有输入元素:

$(":输入")

:文本

匹配所有文本框

查找所有文本框:

$(":text")

:密码

匹配所有密码框

查找所有密码框:

$(": 密码")

:收音机

匹配所有单选按钮

找到所有单选按钮

:复选框

匹配所有复选框

查找所有复选框:

$(":checkbox")

:提交

匹配所有提交按钮

查找所有提交按钮:

$(":提交")

:图片

匹配所有图像字段

匹配所有图像字段:

$(":image")

:重置

匹配所有重置按钮

查找所有重置按钮:

$(":reset")

:按钮

匹配所有按钮

查找所有按钮:

$(":button")

:文件

匹配所有文件字段

查找所有文件字段:

$(": 文件")

9.表单过滤器

名字

说明

解释

:启用

匹配所有可用元素

查找所有可用的输入元素:

$("输入:启用")

:禁用

匹配所有禁用的元素

查找所有禁用的输入元素:

$("输入:禁用")

:检查

匹配所有选中的选中元素(复选框、单选框等,不包括选择中的选项)

查找所有选中的复选框元素:

$("输入:已检查")

:选择

匹配所有选中的选项元素

查找所有选中的选项元素:

$("选择选项:选中")

转载自:

jquery input jquery选择器