jquery选择器的选择使用及性能介绍

在写完第一回之后,看到了朋友们的回复,指出了我代码中的一些问题,确实由于时间仓促没有使用IDE,直接搞上了,又由于本人记忆力不好,所以把大小写都忘记了,还好晚上回家,用VS改了一下,呵呵,真是对不住大家了。

从这一讲开始,我们将直正接触一个JQ类库,学习一下JQ的写法,JQ的一些常用的命令等等,今天主要讲的是JQ里的选择器,这也是JQ的一大特点,这从它的名称jQuery中可以看到,主要功力体现在查询上。

前言:对于写在<script></script>中的代码,一般在JS环境,我们一般把代码写在window.onload=function(){...}代码块里,这个意思是说,当页面加载完成后,再执行JS代码块,而对于JQ来说,它也有类似的方法$(function(){...});我们把代码段写在这里面。有时如果不想那样写(这样写一般把JS代码放在了<head></head>标记里,但这样会影响页面加载的速度),可以把JS代码写在<body></body>的最底下。
ID选择器


代码如下:

alert($("#name").val()); //输出ID为name的input元素的值

类选择器


代码如下:

alert($(".nameclass").val()); //输出具有css名为nameclass的input元素的值

特殊选择器


代码如下:

alert($("input[type=text][name=name]").val()) //输出类型为text,name为name的input元素的值

代码如下:

//选中指定的select元素:
function chekStatus(o) {
$('#OrderStatus').find('option[value=' + o + ']').attr('selected', true);
$('#search_btn').trigger();
}
//全选
$('#SelectAll').click(function() {
if (this.checked) {
$('.forShop:not(:checked)').each(function() {
this.click();
});
}
else {
$('.forShop:checked').each(function() {
this.click();
});
}
});
//是否有选中项
$('#delSelectProduct').click(function() {
if ($('.protuctitem:checked').size() == 0) {
alert('请选择宝贝');
return false;
}
//根据索引,选中指定的option,并为option添加CSS样式
function chekStatus(o) {
$('#OrderStatus').find('option')[o].selected = true;
$($('#tabs').find('dd').removeClass('cur')[o]).addClass('cur');
$('#search_btn').trigger('click');
}
//为表格的行加隔行变色特效,单击行后,再变色
var $trs = $("#baike_div>table>tbody>tr"); //选择所有行
$trs.filter(":odd").addClass("odd"); //给奇数行添加odd样式
$trs.filter(":even").addClass("even"); //给偶数行添加odd样式

下面有一些选择器的技巧,需要我们去了解


代码如下:

//(1)通配符:
$("input[id^='code']"); //id属性以code开始的所有input标签
$("input[id$='code']"); //id属性以code结束的所有input标签
$("input[id*='code']"); //id属性包含code的所有input标签
//(2)根据索引选择
$("tbody tr:even"); //选择索引为偶数的所有tr标签
$("tbody tr:odd"); //选择索引为奇数的所有tr标签
//(3)获得jqueryObj下一级节点的input个数
jqueryObj.children("input").length;
//(4)获得class为main的标签的子节点下所有<a>标签
$(".main > a");
//(5)选择紧邻标签
jqueryObj.next("div"); //获取jqueryObj标签的后面紧邻的一个div,nextAll获取所有
// (6)根据索引选择
$("div").eq(0); //获取第一个div标签
//筛选器
$("#code input:not([id^='code'])"); //id为code标签内不包含id以code开始的所有input标签

面我列出了项目中经常用到了一些选择器,事实上只要理解了它们的直正含义,我们每个人都可以写了特定的JQ代码,当然代码的效率是否高效还需要我们自己进一步的努力,
总之实现基本的需求的功能,只是第一步!

小知识:$("#...")这些选择器的返回值其时是一个JQ对象,而它可以直接操作JQ的内部事件,如click,mouseover等事件

好了,总算是把JQ选择器这块写完了,谢谢您的阅读!

(0)

相关推荐

  • 提升jQuery的性能需要做好七件事

    做好七件事帮你提升jQuery的性能,想知道哪几件事情吗? 1. Append Outside of Loops 凡是触及到DOM都是有代价的.如果你向DOM当中附加大量的元素,你会想一次性将它们全部附加进来,而不是分多次进行.当在循环当中附加元素就会产生一个常见的问题. $.each( myArray, function( i, item ) { var newListItem = "<li>" + item + "</li>"; $( &

  • JQuery Tips(4) 一些关于提高JQuery性能的Tips

    在选择时,最好以ID选择符作为开头 我想这个很好理解,因为JQuery内部使用document.getElementByID方法进行ID选择,这种方法比其他所有对DOM选择的方法更快,所以以$("#")开头是最好的,比如: 复制代码 代码如下: <div id="a"> <div class="b"> <div class="c"> <div class="d"&g

  • JQuery each()函数如何优化循环DOM结构的性能

    如果对jQuery这东西只停留在用的层面,而不知其具体实现的话,真的很容易用出问题来.这也是为什么近期我一直不怎么推崇用jQuery,这框架的API设定就有误导人们走上歧途之嫌. 复制代码 代码如下: $.fn.beautifyTable = function(options) { //定义默认配置项,再用options覆盖 return this.each(function() { var table = $(this), tbody = table.children('tbody'), tr

  • 基于jquery的高性能td和input切换并可修改内容实现代码

    在之前的基础上,添加方向键左右支持. 在实际工作中,我们会碰到这样一个情况.在页面中显示着100个数据,同时用户还希望他可以更改其中的数据,普通的方式可能如下, 这种方式会出现一个问题,就是页面显示的时候有点慢,同时如果有滚动条的话,会有些卡.下面给出我的一个解决方法,显示的时候全是td的,没有input标签,如下 当你点击其中一个td时,就会出现下面这样 当你点击td的时候,会在td动态加入一个input同时把td的值赋给input,当你鼠标离开input时,会把input的值赋给td.同时支

  • js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)

    问题缘由:负责公司的开发平台研发工作,考虑的知识产权的保护工作,必须要考虑java的加密技术和js脚本的加密技术.在目前java加密很容易破解的情况下,还是先搞定js的加密和压缩,一方面可以提高页面加载性能,另外一方面也希望辛苦研发出来的成果得到一定的保护. 研究过程: 1.先强烈鄙视一下哪些随便转载文章的家伙,给我制造了很大的麻烦!!网上很多帖子都不靠谱.. 2.首先想了解jquery使用什么压缩的, 网上找了半天,说法不一样,后来还是在jquery官网的最频繁问题中找到了答案,但这已经是绕了

  • 打造基于jQuery的高性能TreeView(asp.net)

    根据我的项目实践情况,主要是几个关键点: 1:支持静态的树,即一次性将全部数据加载到客户端.2:异步树,即一次只加载一级或若干级节点,子节点可以异步加载数据.3:Checkbox树(可能是静态树也可能是异步树),用于选择(如选择组织机构,选择数据字典项)等,最好是能够支持节点级联(这个是难点)4:能够承载大数据量,并性能表现优异5:能够在主流浏览器中运行良好 那我要打造的TreeView就是为了实现这个5个主要指标的. 先来看下效果图 上图是中国行政区域的数据树,总共得节点是3500+. 那么我

  • JQuery for与each性能比较分析

    最近在做一个性能优化方面的工作,遇到很多细节问题,现在一一把遇到的问题记录下来分享给大家,废话就不多谢,我直接贴代码. 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>for与each性能比较</title> <script src="../Cks/jquery-1.7.1.min.j

  • Jquery优化效率 提升性能解决方案

    例如有一段HTML代码: 1.总是从ID选择器开始继承 以下是引用片段:<div id="content">  <form method="post" action="#">  <h2>交通信号灯</h2>  <ul id="traffic_light">  <li><input type="radio" class="

  • jquery提升性能最佳实践小结

    将jquery对象缓存起来在 for循环中,不要每次都要访问数组的length属性,我们应该先将对象缓存进一个变量然后再操作,如下所示: 复制代码 代码如下: var myLength = myArray.length; for (var i = 0; i < myLength; i++) { // 要做的事 } 在循环外使用append 进行DOM操作是有代价的,如果需要往DOM中添加大量元素,你应该一次批量完成,而不是一次一个. 复制代码 代码如下: // 别这样 $.each(really

  • jquery选择器的选择使用及性能介绍

    在写完第一回之后,看到了朋友们的回复,指出了我代码中的一些问题,确实由于时间仓促没有使用IDE,直接搞上了,又由于本人记忆力不好,所以把大小写都忘记了,还好晚上回家,用VS改了一下,呵呵,真是对不住大家了. 从这一讲开始,我们将直正接触一个JQ类库,学习一下JQ的写法,JQ的一些常用的命令等等,今天主要讲的是JQ里的选择器,这也是JQ的一大特点,这从它的名称jQuery中可以看到,主要功力体现在查询上. 前言:对于写在<script></script>中的代码,一般在JS环境,我们

  • JQuery的常用选择器、过滤器、方法全面介绍

    1.jQuery对象转换成DOM对象 a. var $cr = $("#cr"); //jQuery对象 var cr=$cr[0]; //DOM对象 alert(cr.checked); //检测checkbox是否被选中了 b. var $cr=$("#cr"); //jQuery对象 var cr=$cr.get(0); //DOM对象 alert(cr.checked); //检测checkbox是否被选中了 2.DOM对象转换成jQuery对象 var c

  • jQuery选择器用法介绍

    目录 一.jQuery选择器 二.基本选择器 三.层次选择器 四.属性选择器 五.过滤选择器 1.基本过滤选择器 2.可见性过滤选择器 3.内容过滤器 六.表单选择器 七.补充 1.特殊符号的转义 2.选择器中的空格 jQuery选择器类似于CSS选择器,用来选取网页中的元素.例如: $("h3").css("background-color","red"); 说明: 获取并设置网页中所有<h3>元素的背景色. “h3”为选择器语法,

  • JQuery 选择器、过滤器介绍

    今日的学习再结合昨天的JavaScriptDOM的内容,让我对此十分清晰.JQuery原则:"write less, do more.",这句话已充分说明它对简化使用JavaScriptDOM编程的功力! 每位老师都有自己的教学方式,可能根据教授的内容的不同教学方式也有轻微的变化.老佟是一位非常有经验的软件教师,之前他在大连的软件公司做培训.经过多年的总结,他已经有自己一套成熟的教学方式.这个方式让我十分喜欢!至于是什么方式,你自己来体验吧!哈哈~~ 从学习JavaWEB.Struts

  • jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍

    概念 空格:$('parent childchild')表示获取parent下的所有的childchild节点 大于号:$('parent > childchild')表示获取parent下的所有下一级childchild 加号:$('pre + nextbrother')表示获得pre节点的下一个兄弟节点,相当于next()方法 波浪号:$('pre ~ brother')表示获取pre节点的后面的所有兄弟节点,相当于nextAll()方法 详解描述 现有代码如下 <meta charset

  • jQuery创建自定义的选择器用以选择高度大于100的超链接实例

    本文实例讲述了jQuery创建自定义的选择器用以选择高度大于100的超链接实现方法.分享给大家供大家参考.具体分析如下: jQuery创建一个自定义的选择器,自己定义的这个选择器实际上可以是一个函数,下面的JS代码定义了一个over100pixels的选择器,选择出高度大于100的链接,这类技巧非常实用 $.extend($.expr[':'], { over100pixels: function(a) { return $(a).height() > 100; } }); $('.box:ov

  • jQuery选择器全集详解

    选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器 的理解,它们本身用法就非常简单,我更希望的是它能够提升个人编写jQuery代码的效率.本文配合截图.代码和简单的概括对所有jQuery选择器进行 了介绍,也列举出了一些需要注意和区分的地方. 一.基本选择器 1. id选择器(指定id元素) 将id="one"的元素背景色设置为黑色.(id选择器返单个元素) $(document).ready(fu

  • jquery选择器大全 全面详解jquery选择器

    选择器并没有一个固定的定义,在某种程度上说,jQuery的选择器和样式表中的选择器十分相似.选择器具有如下特点:1.简化代码的编写2.隐式迭代3.无须判断对象是否存在其中"$"是选择器不可缺少的部分,在jQuery库中,$就是jQuery的一个简写形式,比如$("#foo")和jQuery("#foo")是等价的,$.ajax和jQuery.ajax是等价的.如果没有特别说明,可以把程序中的$符号都理解为jQuery的简写形式.现在我们正式进入j

  • NodeJS使用jQuery选择器操作DOM

    注* 这是一个两年多的"老"项目,可以让你在NodeJS中使用jQuery的选择器,像操作前端DOM一样操作后端的HTML/XML,在去除浏览器兼容相关代码后,比JSDOM的操作快8倍. 之前我们曾经提到JSDOM有严重的性能问题:   Debug调试Node.JS:我们是如何定位内存泄漏和无限循环的 cheerio 快速,灵活,在服务器端使用的jQuery. 简介 测试你的服务器端HTML: 复制代码 代码如下: var cheerio = require('cheerio'), $

  • jQuery 选择器理解

    $的选择器部分: 凡是运用$,其返回值是一个object $选择器主要用于选择标签.基本用法是同css的选择器.但是,很让人兴奋的是,他支持常见的浏览器,而css中很多选择器是IE6所不支持的. 1.基本选择器(3种): ----凡是运用$,其返回值是一个object $("标签名"),如$("p")是选取了所有的p标签节点 $("#id名"),如$("#test")是选取了id为test的标签节点 $(".clas

随机推荐