您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 安阳分类信息网,免费分类信息发布

30个经典的jQuery代码开发技巧_jquery

2026/2/5 13:18:26发布4次查看
本文实例总结了30个经典的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 usinga.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. 设置任何匹配一个选择器的事件处理程序
[code]$('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 = '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 it
swap_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 settimeout
settimeout(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. 动态创建元素到dom
复制代码 代码如下:
var 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 maxlength this.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 );
});
希望本文所述对大家的jquery程序设计有所帮助。
安阳分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product