jquery之Document元素选择器篇


Posted in Javascript onAugust 14, 2008

1.从$开始  
对于熟悉prototype的朋友,$符号应该很熟悉,   

prototype: var element = $('eleId')
jquery: var element = $('#eleId')
DOM: var element = document.getElementById('eleId')
以上三种选择方式是等价的,相比prototype来说jquery多了个#号
例:

$('#j1′).html()

<div id=“j1“>Hello, jQuery!</content>

2.通过xpath+css来获取你想要的…
   1).
在这段例子中我们需要用到的HTML代码 

<div class=”contentToChange”>
    <p class=”alert”>警告!警告!警告!警告!</p>
    <p class=”firstParagraph”>我是第一段</p>
    <p class=”secondParagraph”>第二段,哎,火箭输球了 0比33!火箭替补钉上耻辱柱 <em>姚麦</em>身边再无可用之人频繁失误成姚明致命毒药 板凳消失是火箭落后主因</p>
</div>
jquery代码: 

//获取div.contentToChange下p标记数组长度
  alert($('div.contentToChange p').size()) 

//通过调整高度来显示/隐藏所有匹配的元素,这里的匹配元素是p.firstParagraph
  $('div.contentToChange p.firstParagraph').slideToggle('slow');

//找到匹配所有div.contentToChange下所有css不为alert的p元素,并在其后面添加文字  
  $('div.contentToChange p:not(.alert)').append('<strong class=“addText“>这是新加的文字</strong>‘);

//找到所有为strong元素且css为addText的元素,然后删除
  $('strong.addText').remove();

//找到P标记下css为secondParagraph的元素,然后渐隐
  $('div.contentToChange p.secondParagraph').hide('slow');

//找到div.contentToChange下所有em元素,然后通过jquery中的css方法改变它们的颜色和字体
  $('div.contentToChange em').css({color:“#993300“,fontWeight:“bold“});

//添加css样式
  $('div.contentToChange p.secondParagraph').addClass('new‘)

//删除css样式
  $('div.contentToChange p.secondParagraph').removeClass('new‘);

   2).

在这段例子中我们需要用到的HTML代码:
<div id=”jqdt” style=”width: 400px; padding: 1em; border: 1px solid #000″>
 <p class=”goofy”> 这个 <em>段落</em> 包括了一些css属性为”groof”的 <strong>文本</strong>, 它还具有一个 <a href=”http://www.englishrules.com” class=”external text” title=”http://www.englishrules.com”>外部连接</a>, 一些 <code>$(代码)</code>, 和一个超连接属性是以 <a href=”#dt-link3_same-page_link” title=”">#打头的超连接</a>. </p>
 <ol>
  <li>list item 1 with dummy link to <a href=”/action/edit/Silly.pdf” class=”new” title=”Silly.pdf”>silly.pdf</a></li>
  <li class=”groof”><em>list <strong>item</strong> 2</em> with class=”<strong>groof</strong>“</li>
  <li>list item 3<span style=”display: none;”> SURPRISE!</span></li>
  <li><strong>list item 4</strong> with silly link to <a href=”/action/edit/Silly.pdf_silly.pdf” class=”new” title=”Silly.pdf silly.pdf”>silly.pdf silly.pdf</a></li>
  <li><a href=”contains.php”>支持火箭</a>,支持MM!</li>
 </ol>
</div>
jquery代码

//获取第一个list item
$('#jqdt ol li:eq(0)')
//等价于
$('#jqdt').find('li:eq(0)') //以下同

//获取所有偶数行的list item
$('#jqdt ol li:even')

//获取索引小于3的list item
$('#jqdt ol li:lt(3)')

//获取所有li中css不为groof的list item
$('#jqdt ol li:not(.groof)')

//获取P标记下所有超连接属性值以'#'打头的元素
$('p a[@href*=#]')

//获取所有code元素和css为groof的li元素的集合
$('#jqdt code, li.groof')

//先获取ol下css属性为groof的A, 然后找到节点A下的一级子节点strong元素
$('#jqdt ol .groof > strong')

//首先找到所有以list item作为自己的前一节点的list item元素(所以不会选择到第一个list item,因为它的前面没有list item节点了).然后在这些元素中找到超连接属性值以为'pdf'结尾的一级子节点
$('#jqdt ol li + li > a[@href$=pdf]')

//找到所有已隐藏的span元素
$('span:visible')

//找到超连接中包含火箭字样的元素
$('li a:contains(“火箭“)')

 
注:
$('#jqdt ol.groof > strong') 其中的>代表只访问下一级子节点中包含strong的元素,
如果改为 $('#jqdt ol.groof strong') 则访问所有下级子节点中的strong元素,包括子节点的子节点等。 

 3).
常用的自定义选择器
  :eq(0) 选择索引等于0也就是第一个元素

  :gt(4) 选择所有索引大于4的元素
  :lt(4) 选择所有索引小于4的元素
  :first 等价于 :eq(0) 
  :last 选择最后一个元素
  :parent 选择所有含有子节点的元素 (including text). 
  :contains('test') 选择含有指定文本的元素 
  :visible 选择所有可见元素(包含:display:block|inline,或者visibility为visible的元素,但是不包括表单元素(type hidden)
  :hidden 选择所有隐藏元素(包含:display:none,或者visibility为hidden的元素,包括表单元素(type hidden) 

例:

$('p:first').css('fontWeight','bold')
   $('div:hidden').show();
   $(“div:contains('test')“).hide();

   $('input[@name=bar]').val() //获取名字为bar的input表单的值
   $('select[@name=slt]').val() //获取名为slt的下拉菜单的选择中值
   $('input[@type=radio][@checked]') //获取所有被选中的radio表单

 
表单选择器 

  :input Selects all form elements (input, select, textarea, button). 
  :text Selects all text fields (type=”text”). 
  :password Selects all password fields (type=”password”). 
  :radio Selects all radio fields (type=”radio”). 
  :checkbox Selects all checkbox fields (type=”checkbox”). 
  :submit Selects all submit buttons (type=”submit”). 
  :image Selects all form images (type=”image”). 
  :reset Selects all reset buttons (type=”reset”). 
  :button Selects all other buttons (type=”button”). 

例:

  $('myForm:input')
  $('input:radio',myForm)
  //:radio等价于[@type=radio]

Javascript 相关文章推荐
Jquery练习之表单验证实现代码
Dec 14 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
Apr 12 Javascript
使用delegate方法为一个tr标签加一个链接
Jun 27 Javascript
JavaScript数据类型转换的注意事项
Jul 31 Javascript
react 父组件与子组件之间的值传递的方法
Sep 14 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
Nov 28 Javascript
vue 组件中slot插口的具体用法
Apr 03 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
May 22 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
Jun 26 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
浅谈vue 锚点指令v-anchor的使用
Nov 13 Javascript
JavaScript国旗变换效果代码
Aug 13 #Javascript
js活用事件触发对象动作
Aug 10 #Javascript
JS支持带x身份证号码验证函数
Aug 10 #Javascript
js获取div高度的代码
Aug 09 #Javascript
js可突破windows弹退效果代码
Aug 09 #Javascript
ext form 表单提交数据的方法小结
Aug 08 #Javascript
ext实现完整的登录代码
Aug 08 #Javascript
You might like
php 删除cookie和浏览器重定向
2009/03/16 PHP
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
IE的fireEvent方法概述及应用
2013/02/22 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
vue权限管理系统的实现代码
2019/01/17 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
十个Python程序员易犯的错误
2015/12/15 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
django认证系统 Authentication使用详解
2019/07/22 Python
python如何进入交互模式
2020/07/06 Python
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
《小小竹排画中游》教学反思
2014/02/26 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers
如何利用python实现Simhash算法
2022/06/28 Python