jQuery代码开发技巧都有哪些
发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,本篇文章给大家分享的是有关jQuery代码开发技巧都有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. 创建一个嵌套的过滤器.fi
千家信息网最后更新 2024年10月18日jQuery代码开发技巧都有哪些
本篇文章给大家分享的是有关jQuery代码开发技巧都有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
1. 创建一个嵌套的过滤器
.filter(":not(:has(.selected))") //去掉所有不包含class为.selected的元素
2. 重用你的元素查询
var allItems = $("div.item"); var keepList = $("div#container1 div.item");class names: $(formToLookAt + " input:checked").each(function() { keepListkeepList = keepList.filter("." + $(this).attr("name")); });
3. 使用has()来判断一个元素是否包含特定的class或者元素
//jQuery 1.4.* includes support for the has method. This method will find //if a an element contains a certain other element class or whatever it is //you are looking for and do anything you want to them. $("input").has(".email").addClass("email_icon");
4. 使用jQuery切换样式
//Look for the media-type you wish to switch then set the href to your new style sheet $('link[media='screen']').attr('href', 'Alternative.css');
5. 限制选择的区域
//Where possible, pre-fix your class names with a tag name //so that jQuery doesn't have to spend more time searching //for the element you're after. Also remember that anything //you can do to be more specific about where the element is //on your page will cut down on execution/search times var in_stock = $('#shopping_cart_items input.is_in_stock');
- Item X
- Item Y
- Item Z
6. 如何正确使用ToggleClass
//Toggle class allows you to add or remove a class //from an element depending on the presence of that //class. Where some developers would use: a.hasClass('blueButton') ? a.removeClass('blueButton') : a.addClass('blueButton'); //toggleClass allows you to easily do this using a.toggleClass('blueButton');
7. 设置IE指定的功能
if ($.browser.msie) { // Internet Explorer is a sadist. }
8. 使用jQuery来替换一个元素
$('#thatdiv').replaceWith('fnuh');
9. 验证一个元素是否为空
if ($('#keks').html()) { //Nothing found ;}
10. 在无序的set中查找一个元素的索引
$("ul > li").click(function () { var index = $(this).prevAll().length; });
11. 绑定一个函数到一个事件
$('#foo').bind('click', function() { alert('User clicked on "foo."'); });
12. 添加HTML到一个元素
$('#lal').append('sometext');
13. 创建元素时使用对象来定义属性
var e = $("", { href: "#", class: "a-class another-class", title: "..." });
14. 使用过滤器过滤多属性
//This precision-based approached can be useful when you use //lots of similar input elements which have different types var elements = $('#someid input[type=sometype][value=somevalue]').get();
15. 使用jQuery预加载图片
jQuery.preloadImages = function() { for(var i = 0; i').attr('src', arguments[i]); } }; // Usage $.preloadImages('image1.gif', '/path/to/image2.png', 'some/image3.jpg');
16. 设置任何匹配一个选择器的事件处理程序
$('button.someClass').live('click', someFunction);//Note that in jQuery 1.4.2, the delegate and undelegate options have been//introduced to replace live as they offer better support for context//For example, in terms of a table where before you would use..// .live()$("table").each(function(){$("td", this).live("hover", function(){$(this).toggleClass("hover");});});//Now use..$("table").delegate("td", "hover", function(){$(this).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);}//Then to scroll to the class/area you wish to get to like this:$('.area_name').autoscroll();
20. 检测各种浏览器
Detect Safari (if( $.browser.safari)),Detect IE6 and over (if ($.browser.msie && $.browser.version > 6 )),Detect IE6 and below (if ($.browser.msie && $.browser.version <= 6 )),Detect FireFox 2 and above (if ($.browser.mozilla && $.browser.version >= '1.8' ))
21. 替换字符串中的单词
var el = $('#id');el.html(el.html().replace(/word/ig, ''));
22. 关闭右键的菜单
$(document).bind('contextmenu',function(e){ return false; });
23. 定义一个定制的选择器
$.expr[':'].mycustomselector = function(element, index, meta, stack){// element- is a DOM element// index - the current loop index in stack// meta - meta data about your selector// stack - stack of all elements to loop// Return true to include current element// Return false to explude current element};// Custom Selector usage:$('.someClasses:test').doSomething();
24. 判断一个元素是否存在
if ($('#someDiv').length) {//hooray!!! it exists...}
25. 使用jQuery判断鼠标的左右键点击
$("#someelement").live('click', function(e) {if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) {alert("Left Mouse Button Clicked");}else if(e.button == 2)alert("Right Mouse Button Clicked");});
26. 显示或者删除输入框的缺省值//This snippet will show you how to keep a default value//in a text input field for when a user hasn't entered in//a value to replace itswap_val = [];$(".swap").each(function(i){swap_val[i] = $(this).val();$(this).focusin(function(){if ($(this).val() == swap_val[i]) {$(this).val("");}}).focusout(function(){if ($.trim($(this).val()) == "") {$(this).val(swap_val[i]);}});}); 27. 指定时间后自动隐藏或者关闭元素(1.4支持)//Here's how we used to do it in 1.3.2 using setTimeoutsetTimeout(function() {$('.mydiv').hide('blind', {}, 500)}, 5000);//And here's how you can do it with 1.4 using the delay() feature (this is a lot like sleep)$(".mydiv").delay(5000).hide('blind', {}, 500); 28. 动态创建元素到DOMvar newgbin1Div = $('');newgbin1Div.attr('id','gbin1.com').appendTo('body'); 29. 限制textarea的字符数量jQuery.fn.maxLength = function(max){this.each(function(){var type = this.tagName.toLowerCase();var inputType = this.type? this.type.toLowerCase() : null;if(type == "input" && inputType == "text" || inputType == "password"){//Apply the standard maxLengththis.maxLength = max;}else if(type == "textarea"){this.onkeypress = function(e){var ob = e || event;var keyCode = ob.keyCode;var hasSelection = document.selection? document.selection.createRange().text.length > 0 : this.selectionStart != this.selectionEnd;return !(this.value.length >= max && (keyCode > 50 || keyCode == 32 || keyCode == 0 || keyCode == 13) && !ob.ctrlKey && !ob.altKey && !hasSelection);};this.onkeyup = function(){if(this.value.length > max){this.value = this.value.substring(0,max);}};}});};//Usage:$('#gbin1textarea').maxLength(500); 30. 为函数创建一个基本测试用例//Separate tests into modules.module("Module B");test("some other gbin1.com test", function() {//Specify how many assertions are expected to run within a test.expect(2);//A comparison assertion, equivalent to JUnit's assertEquals.equals( true, false, "failing test" );equals( true, true, "passing test" );}); 31. 使用jQuery克隆元素var cloned = $('#gbin1div').clone(); 32. 测试一个元素在jQuery中是否可见if($(element).is(':visible') == 'true') { //The element is Visible } 33. 元素屏幕居中jQuery.fn.center = function () {this.css('position','absolute');this.css('top', ( $(window).height() - this.height() ) / +$(window).scrollTop() + 'px');this.css('left', ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + 'px');return this;}//Use the above function as: $('#gbin1div').center(); 34. 使用特定名字的元素对应的值生成一个数组var arrInputValues = new Array();$("input[name='table[]']").each(function(){arrInputValues.push($(this).val());}); 35. 剔除元素中的HTML(function($) {$.fn.stripHtml = function() {var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;this.each(function() {$(this).html($(this).html().replace(regexp,""));});return $(this);}})(jQuery);//usage:$('p').stripHtml();36. 使用closest来得到父元素$('#searchBox').closest('div'); 37. 使用firebug来记录jQuery事件// Allows chainable logging// Usage: $('#someDiv').hide().log('div hidden').addClass('someClass');jQuery.log = jQuery.fn.log = function (msg) {if (console){console.log("%s: %o", msg, this);}return this;}; 38. 点击链接强制弹出新窗口jQuery('a.popup').live('click', function(){newwindow=window.open($(this).attr('href'),'','height=200,width=150');if (window.focus) {newwindow.focus()}return false;}); 39. 点击链接强制打开新标签页jQuery('a.newTab').live('click', function(){newwindow=window.open($(this).href);jQuery(this).target = "_blank";return false;}); 40. 使用siblings()来处理同类元素// Rather than doing this$('#nav li').click(function(){$('#nav li').removeClass('active');$(this).addClass('active');});// Do this instead$('#nav li').click(function(){$(this).addClass('active').siblings().removeClass('active');}); 41. 选择或者不选页面上全部复选框var tog = false; // or true if they are checked on load$('a').click(function() {$("input[type=checkbox]").attr("checked",!tog);tog = !tog;}); 42. 基于输入文字过滤页面元素//If the value of the element matches that of the entered text//it will be returned$('.gbin1Class').filter(function() {return $(this).attr('value') == $('input#gbin1Id').val() ;}) 43. 取得鼠标的X和Y坐标$(document).mousemove(function(e){$(document).ready(function() {$().mousemove(function(e){$('#XY').html("Gbin1 X Axis : " + e.pageX + " | Gbin1 Y Axis " + e.pageY);});}); 44. 使得整个列表元素(LI)可点击$("ul li").click(function(){_window.location=$(this).find("a").attr("href"); return false;});45. 使用jQuery来解析XMLfunction parseXml(xml) {//find every Tutorial and print the author$(xml).find("Tutorial").each(function(){$("#output").append($(this).attr("author") + "");});} 46. 判断一个图片是否加载完全$('#theGBin1Image').attr('src', 'image.jpg').load(function() {alert('This Image Has Been Loaded');}); 47. 使用jQuery命名事件//Events can be namespaced like this$('input').bind('blur.validation', function(e){// ...});//The data method also accept namespaces$('input').data('validation.isValid', true); 48. 判断cookie是否激活或者关闭var dt = new Date();dt.setSeconds(dt.getSeconds() + 60);[xss_clean] = "cookietest=1; expires=" + dt.toGMTString();var cookiesEnabled = [xss_clean].indexOf("cookietest=") != -1;if(!cookiesEnabled){//cookies have not been enabled} 49. 强制过期cookievar date = new Date();date.setTime(date.getTime() + (x * 60 * 1000));$.cookie('example', 'foo', { expires: date }); 50. 使用一个可点击的链接替换页面中所有URL$.fn.replaceUrl = function() {var regexp = /((ftp|http|https)://(w+:{0,1}w*@)?(S+)(:[0-9]+)?(/|/([w#!:.?+=&%@!-/]))?)/gi;this.each(function() {$(this).html($(this).html().replace(regexp,'$1'));});return $(this);}//usage$('#GBin1div').replaceUrl();
以上就是jQuery代码开发技巧都有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
元素
选择
事件
页面
链接
强制
代码
技巧
开发
函数
区域
图片
字符
属性
更多
知识
篇文章
过滤器
鼠标
处理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全的5大特征是什么
航空无线网络技术
韩城网络安全宣传活动
南京垃圾分类软件开发
网络安全进社区简报
成都天府通软件开发待遇
小学网络安全优质课教学设计
清华计算机网络安全考研
笑话大全数据库
大学计算机网络技术课堂
技术选型在软件开发什么阶段
江夏学院计算机网络技术课程
闲鱼服务器48g价格
中国网站服务器在中国
网络营销软件开发定制哪家好
科技互联网指数hstec
网络安全我们该怎么做论文
沃趣的数据库一体机怎么样
用友如何操作初始化数据库
鲜讯互联网科技
湖北襄阳软件开发公司电话
联想服务器ts250机盖
solidity导入数据库
深圳市广安网络技术有限公司
网站的数据库怎么做
通州区定制软件开发操作
论文中的数据库设计怎么写
sntp服务器是干什么的
中国dns服务器地址
sql数据库的游标怎么写