1如何创建嵌套的过滤器:2如何重用元素搜索:3任何使用has()来检查某个元素是否包含某个类或是元素:4如何使用jquery来切换样式表//找出你希望切换的媒体类型(media-type),然后把href设置成新的样式表。 $('link[media='screen']').attr('href', 'alternative.css');5如何限制选择范围(基于优化目的): //尽可能使用标签名来作为类名的前缀, //这样jquery就不需要花费更多的时间来搜索 //你想要的元素。还要记住的一点是, //针对于你的页面上的元素的操作越具体化, //就越能降低执行和搜索的时间。 varin_stock = $('#shopping_cart_items input.**_in_stock'); <ul id="shopping_cart_items"><li><input type="radio" value="item-x" name="item" class="**_in_stock" /> item x</li><li><input type="radio" value="item-y" name="item" class="3-5_days" /> item y</li><li><input type="radio" value="item-z" name="item" class="unknown" /> item z</li></ul>6如何正确地使用toggleclass: //切换(toggle)类允许你根据某个类的 //是否存在来添加或是删除该类。 //这种情况下有些开发者使用: a.hasclass('bluebutton') ? a.removeclass('bluebutton') : a.addclass('bluebutton'); //toggleclass允许你使用下面的语句来很容易地做到这一点 a.toggleclass('bluebutton'); 7如何设置ie特有的功能: if($.browser.msie) { // internet explorer就是个虐待狂 } 8如何使用jquery来代替一个元素: $('#thatdiv').replacewith('fnuh'); 9如何验证某个元素是否为空: if($('#keks').html()) { //什么都没有找到; } 10如何从一个未排序的集合中找出某个元素的索引号 $("ul > li").click(function() { varindex = $(th**).prevall().length; }); 11如何把函数绑定到事件上: $('#foo').bind('click', function() { alert('user clicked on "foo."'); }); 12如何追加或是添加html到元素中: $('#lal').append('sometext'); 13在创建元素时,如何使用对象字面量(literal)来定义属性 vare = $("", { href: "#", class: "a-class another-class", title: "..."});14如何使用多个属性来进行过滤 //在使用许多相类似的有着不同类型的input元素时, //这种基于精确度的方法很有用 varelements = $('#someid input[type=sometype][value=somevalue]').get();15如何使用jquery来预加载图像: jquery.preloadimages = function() { for(vari = 0; i < arguments.length; i++) { $("<img />").attr('src', arguments[i]); } }; //用法 $.preloadimages('image1.gif', '/path/to/image2.png', 'some/image3.jpg');16如何为任何与选择器相匹配的元素设置事件处理程序: $('button.someclass').live('click', somefunction); //注意,在jquery 1.4.2中,delegate和undelegate选项 //被引入代替live,因为它们提供了更好的上下文支持 //例如,就table来说,以前你会用 //.live() $("table").each(function(){ $("td", th**).live("hover", function(){ $(th**).toggleclass("hover"); }); }); //现在用 $("table").delegate("td", "hover", function(){ $(th**).toggleclass("hover"); }); 17如何找到一个已经被选中的option元素: $('#someelement').find('option:selected'); 18如何隐藏一个包含了某个值文本的元素: $("p.value:contains('thetextvalue')").hide(); 19如果自动滚动到页面中的某区域 jquery.fn.autoscroll = function(selector) { $('html,body').animate( {scrolltop: $(selector).offset().top}, 500 }; } //然后像这样来滚动到你希望去到的class/area上。 $('.area_name').autoscroll(); 20如何检测各种浏览器: 检测safari (if( $.browser.safari)), 检测ie6及之后版本 (if($.browser.msie && $.browser.version > 6 )), 检测ie6及之前版本 (if($.browser.msie && $.browser.version <= 6 )), 检测firefox 2及之后版本 (if($.browser.mozilla && $.browser.version >= '1.8')) 21如何替换串中的词 varel = $('#id'); el.html(el.html().replace(/word/ig, '')); 22如何禁用右键单击上下文菜单: $(document).bind('contextmenu',function(e){ returnfalse; }); 23如何定义一个定制的选择器 $.expr[':'].mycustomselector = function(element, index, meta, stack){ // element- 一个dom元素 // index – 栈中的当前循环索引 // meta – 有关选择器的元数据 // stack – 要循环的所有元素的栈 // 如果包含了当前元素就返回true // 如果不包含当前元素就返回false }; // 定制选择器的用法: $('.someclasses:test').dosomething(); 24如何检查某个元素是否存在 if($('#somediv').length) { //万岁!!!它存在…… } 24该信息未经许可获取自百度经验25如何使用jquery来检测右键和左键的鼠标单击两种情况: $("#someelement").live('click', function(e) { if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) { alert("left mouse button clicked"); } elseif(e.button == 2) { alert("right mouse button clicked"); } }); 26如何显示或是删除input域中的默认值 //这段代码展示了在用户未输入值时, //如何在文本类型的input域中保留 //一个默认值 wap_val = []; $(".swap").each(function(i){ wap_val[i] = $(th**).val(); $(th**).focusin(function(){ if($(th**).val() == swap_val[i]) { $(th**).val(""); } }).focusout(function(){ if($.trim($(th**).val()) == "") { $(th**).val(swap_val[i]); } }); }); 27如何在一段时间之后自动隐藏或关闭元素(支持1.4版本): //这是1.3.2中我们使用settimeout来实现的方式 settimeout(function() { $('.mydiv').hide('blind', {}, 500) }, 5000); //而这是在1.4中可以使用delay()这一功能来实现的方式(这很像是休眠) $(".mydiv").delay(5000).hide('blind', {}, 500); 28如何把已创建的元素动态地添加到dom中: varnewdiv = $(''); newdiv.attr('id','mynewdiv').appendto('body'); 29如何限制“text-area”域中的字符的个数: jquery.fn.maxlength = function(max){ th**.each(function(){ vartype = th**.tagname.tolowercase(); varinputtype = th**.type? th**.type.tolowercase() : **; if(type == "input"&& inputtype == "text"|| inputtype == "password"){ //apply the standard maxlength th**.maxlength = max; } elseif(type == "textarea"){ th**.onkeypress = function(e){ varob = e || event; varkeycode = ob.keycode; varhasselection = document.selection? document.selection.createrange().text.length > 0 : th**.selectionstart != th**.selectionend; return!(th**.value.length >= max && (keycode > 50 || keycode == 32 || keycode == 0 || keycode == 13) && !ob.ctrlkey && !ob.altkey && !hasselection); }; th**.onkeyup = function(){ if(th**.value.length > max){ th**.value = th**.value.substring(0,max); } }}})}; //用法 $('#mytextarea').maxlength(500); 30如何为函数创建一个基本的测试 //把测试单独放在模块中 module("module b"); test("some other test", function() { //指明测试内部预期有多少要运行的断言 expect(2); //一个比较断言,相当于junit的assertequals equals( true, false, "failing test"); equals( true, true, "passing test"); }); 31如何在jquery中**一个元素: varcloned = $('#somediv').clone(); 32在jquery中如何测试某个元素是否可见 if($(element).**(':v**ible') == 'true') { //该元素是可见的 } 33如何把一个元素放在屏幕的中心位置: jquery.fn.center = function() { th**.css('position','absolute'); th**.css('top', ( $(window).height() - th**.height() ) / +$(window).scrolltop() + 'px'); th**.css('left', ( $(window).width() - th**.width() ) / 2+$(window).scrollleft() + 'px'); returnth**; } //这样来使用上面的函数: $(element).center(); 34如何把有着某个特定名称的所有元素的值都放到一个数组中:vararrinputvalues = newarray(); $("input[name='table[]']").each(function(){ arrinputvalues.push($(th**).val()); });35如何从元素中除去html (function($) { $.fn.striphtml = function() { varregexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi; th**.each(function() { $(th**).html( $(th**).html().replace(regexp,”") ); }); return$(th**); } })(jquery); //用法: $('p').striphtml(); 36如何使用closest来取得父元素: $('#searchbox').closest('div'); 37如何使用firebug和firefox来记录jquery事件日志: // 允许链式日志记录 // 用法: $('#somediv').hide().log('div hidden').addclass('someclass'); jquery.log = jquery.fn.log = function(msg) { if(console){ console.log("%s: %o", msg, th**); } returnth**; }; 38如何强制在弹出窗口中打开链接: jquery('a.popup').live('click', function(){ newwindow=window.open($(th**).attr('href'),'','height=200,width=150'); if(window.focus) { newwindow.focus(); } returnfalse; }); 39如何强制在新的选项卡中打开链接: jquery('a.newtab').live('click', function(){ newwindow=window.open($(th**).href); jquery(th**).target = "_blank"; returnfalse; }); 40在jquery中如何使用.siblings()来选择同辈元素 // 不这样做 $('#n** li').click(function(){ $('#n** li').removeclass('active'); $(th**).addclass('active'); }); //替代做法是 $('#n** li').click(function(){ $(th**).addclass('active').siblings().removeclass('active'); }); 41如何切换页面上的所有复选框: vartog = false; // 或者为true,如果它们在加载时为被选中状态的话 $('a').click(function() { $("input[type=checkbox]").attr("checked",!tog); tog = !tog; }); 42如何基于一些输入文本来过滤一个元素列表: //如果元素的值和输入的文本相匹配的话 //该元素将被返回 $('.someclass').filter(function() { return$(th**).attr('value') == $('input#someid').val(); }) 43如何获得鼠标垫光标位置x和y $(document).ready(function() { $(document).mousemove(function(e){ $(’#xy’).html(”x ax** : ” + e.pagex + ” | y ax** ” + e.pagey); }); }); 44如何把整个的列表元素(l**t element,li)变成可点击的 $("ul li").click(function(){ window.location=$(th**).find("a").attr("href"); returnfalse; }); <ul> <li><a href="#">link 1</a></li> <li><a href="#">link 2</a></li> <li><a href="#">link 3</a></li> <li><a href="#">link 4</a></li> </ul> 45如何使用jquery来解析xml(基本的例子): functionparsexml(xml) { //找到每个tutorial并打印出author $(xml).find("tutorial").each(function() { $("#output").append($(th**).attr("author") + ""); }); } 46如何检查图像是否已经被完全加载进来 $('#theimage').attr('src', 'image.jpg').load(function() { alert('th** image has been loaded'); }); 47如何使用jquery来为事件指定命名空间: //事件可以这样绑定命名空间 $('input').bind('blur.validation', function(e){ // ... }); //data方法也接受命名空间 $('input').data('validation.**valid', true); 48如何检查cookie是否启用 vardt = newdate(); dt.setseconds(dt.getseconds() + 60); document.cookie = "cookietest=1; expires="+ dt.togmtstring(); varcookiesenabled = document.cookie.indexof("cookietest=") != -1; if(!cookiesenabled) { //没有启用cookie } 49如何让cookie过期: vardate = newdate(); date.settime(date.gettime() + (x * 60 * 1000)); $.cookie('example', 'foo', { expires: date }); 50如何使用一个可点击的链接来替换页面中任何的url $.fn.replaceurl = function() { varregexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\s+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi; th**.each(function() { $(th**).html( $(th**).html().replace(regexp,'<a href="$1">$1</a>‘) ); }); return$(th**); } //用法 $('p').replaceurl(); end 20210311