JQuery常用选择器功能与用法实例分析

时间:2021-05-26

本文实例讲述了JQuery常用选择器功能与用法。分享给大家供大家参考,具体如下:

JQuery基础回顾

今天对JQuery内容进行了回顾,下面进行一些总结:

JQuery是javascript的一个库,所以二者可以相互转换,例如JQuery到Javascript,用$()获取元素,传给JS的var变量。反之JS的getElement方法获取var变量后,可以通过$(var)转化成JQuery对象。

JQuery的选择器,

id选择$("#id"),class选择$(".class"),元素选择$("elemrnt"),选择所有$("*")。层级选择器有:子选择器$("parent>child")选中直接子代,后代选择器$("ancensterdescendant")选中所有的后代元素,相邻兄弟选择器$("prev+next")选中prev之后的第一个next节点,一般兄弟选择$("prev~siblings")选中prev之后所有siblings元素。Jquery常用属性选择器如下:

$(“:first”)

选中第一个元素

$(“:last”)

选中最后一个元素

$(“:eq(n-1)”)

选中第n个元素

$(“:gt(n-1)”)

选中n个以后的所有

$(“:lt(n-1)”)

选中n个以前的所有

$(“:even”)

选中偶数个元素

$(“:odd”)

选中奇数个的元素

$(“:not(selector)”)

选中除selector选择外的所有

$(“:animated”)

选中执行动画的元素

$(“: header”)

选中标题元素,如h1、h2

$(“:visible”)

选中可见的元素

$(“:hidden”)

选中隐藏的元素

子元素选择器

$(“:first-child”)

选择第一个元素

$(“:last-child”)

选择最后一个元素

$(“:only-child”)

选择没有兄弟的元素

$(“:nth-child(n)”)

选择第n个元素

$(“:nth-last-child(n)”)

选择倒数第n个元素

First与first-child区别:

<ul> <li>第1个ul的第1个li</li> <li>第1个ul的第2个li</li> <li>第1个ul的第3个li</li></ul><ul> <li>第2个ul的第1个li</li> <li>第2个ul的第2个li</li> <li>第2个ul的第3个li</li></ul>

first表示(所有父元素合并后的)第一个元素;first-child表示(每个父元素的)第一个

$('ul li:first') 返回"第1个ul的第1个li"。 查找所有ul下第一个li元素

$("ul li:first-child") 返回"第1个ul的第1个li"与"第2个ul的第1个li"。查找每个ul下第一个元素是li元素dom元素。

常用内容选择器如下:

$(“:contains(‘text')”)

选中包含文本text的元素

$(“:parent”)

选中包含内容(节点或文本)的元素

$(“empty”)

选中不包含任何内容的元素

$(“:has(selector)”)

选中包含selector选择器的元素

属性内容选择器:

$(“[attribute]”)

选中包含指定属性的元素

$(“[attribute='value']”)

选中属性等于指定值的元素

$(“[attribute!='value']”)

选中属性不等于指定值的元素

$(“[attribute^='value']”)

选中属性以指定值开头的元素

$(“[attribute$='value']”)

选中属性以指定值结尾的元素

$(“[attribute*='value']”)

选中属性包含指定值的元素

$(“[attribute|='value']”)

选中属性以指定值为前缀+'-‘的元素

$(“[attribute~='value']”)

选中属性以指定值为前缀+空格的元素

$(“[attribute1] [attributeN]”)

多个属性值括号可并列复选

例如:

<!DOCTYPE html><html><head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>属性筛选选择器</title> <link rel="stylesheet" href="imooc.css" rel="external nofollow" type="text/css"> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script></head><body> <h3>[att=val]、[att]、[att|=val]、[att~=val]</h3> <div class="left" testattr="true" > <div class="div" testattr="true" name='p1'> <a>[att=val]</a> </div> <div class="div" testattr="true" p2> <a>[att]</a> </div> <div class="div" testattr="true" name="t-est"> <a>[att|=val]</a> </div> <div class="div" testattr="true" name="a b"> <a>[att~=val]</a> </div> </div> <script type="text/javascript"> //查找所有div中,属性name=p1的div元素 $('div[name=p1]').css("border", "3px groove red"); //查找所有div中,有属性p2的div元素 $("div[p2]").css("border", "3px groove blue"); //查找所有div中,属性name中包含一个连字符"-"为前缀的div元素 $('div[name|="t"]').css("border", "3px groove #00FF00"); //查找所有div中,属性name中包含一个连字符"空"和"a"的div元素 $("div[name~='a']").css("border", "3px groove pink"); </script> <h3>[att^=val]、[att*=val]、[att$=val]、[att!=val]</h3> <div class="left" testattr="true" > <div class="div" testattr="true" name='start-name'> <a>[att^=val]</a> </div> <div class="div" testattr="true" name='name-end'> <a>[att$=val]</a> </div> <div class="div" testattr="true" name="attr-test-selector"> <a>[att*=val]</a> </div> <div class="div" name="a b"> <a>[att!=val]</a> </div> </div> <script type="text/javascript"> //查找所有div中,属性name的值是用start开头的 $("div[name^='start']").css("border", "3px groove red"); //查找所有div中,属性name的值是用end结尾的 $("div[name$='end']").css("border", "3px groove blue"); //查找所有div中,有属性name中的值包含一个test字符串的div元素 $("div[name*='test']").css("border", "3px groove #00FF00"); //查找所有div中,有属性testattr中的值没有包含"true"的div $("div[testattr!='true']").css("border", "3px groove #668B8B"); </script></body></html>

结果如下:

表单选择器

$(“input:type”)

选择类型为type的表单元素

$(“:enabled”)

选择激活的表单元素

$(“:disabled”)

选择不可用的表单元素

$(“:checked”)

选择选中的表单元素

$(“:selected”)

选择选中的option元素

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery页面元素操作技巧汇总》、《jQuery常见事件用法与技巧总结》、《jQuery常用插件及用法总结》、《jQuery扩展技巧总结》及《jquery选择器用法总结》

希望本文所述对大家jQuery程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章