亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

30個經典的jQuery代碼開發技巧

2019-11-20 13:44:29
字體:
來源:轉載
供稿:網友

本文實例總結了30個經典的jQuery代碼開發技巧。分享給大家供大家參考。具體如下:

1. 創建一個嵌套的過濾器

復制代碼 代碼如下:
.filter(":not(:has(.selected))") //去掉所有不包含class為.selected的元素

2. 重用你的元素查詢

復制代碼 代碼如下:
var allItems = $("div.item");
var keepList = $("div#container1 div.item");
<div>class names: $(formToLookAt + " input:checked").each(function() { keepListkeepList = keepList.filter("." + $(this).attr("name"));
});
</div>

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');
<ul id="shopping_cart_items">
<li> <input value="Item-X" name="item" type="radio"> Item X</li>
<li> <input value="Item-Y" name="item" type="radio"> Item Y</li>
<li> <input value="Item-Z" name="item" type="radio"> Item Z</li>
</ul>

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 <= 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 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]); } }); }); <INPUT value="Enter Username here.." type=text>

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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
韩国三级电影久久久久久| 日韩欧美中文免费| 精品国产区一区二区三区在线观看| 精品亚洲一区二区三区在线播放| 欧美重口另类videos人妖| 欧美xxxwww| 精品国内产的精品视频在线观看| 欧美日在线观看| 久久777国产线看观看精品| 中文字幕综合一区| 福利视频第一区| 国产欧美精品在线播放| 亚洲图片制服诱惑| 热久久美女精品天天吊色| 亚洲国产成人精品女人久久久| 久久成人精品视频| 成人激情视频在线观看| 国产美女久久精品香蕉69| 91系列在线播放| 在线观看不卡av| 久久理论片午夜琪琪电影网| 国产精品∨欧美精品v日韩精品| 国产精品大陆在线观看| 中文字幕欧美日韩| 亚洲精品国偷自产在线99热| 国产精品九九九| 中国china体内裑精亚洲片| 欧亚精品在线观看| 亚洲丝袜在线视频| 欧美性高潮床叫视频| 九九九久久国产免费| 亚洲欧美日韩成人| 国产一区二区在线播放| 久久理论片午夜琪琪电影网| 亚洲综合中文字幕在线| 亚洲欧美成人网| 国产精品成人免费视频| 日韩欧美国产一区二区| 久久久综合免费视频| 亚洲欧美日韩国产中文| 中文字幕亚洲一区二区三区五十路| 最近2019年手机中文字幕| 精品国产福利在线| 久久久国产精品视频| 中文日韩在线观看| 国产精品老女人精品视频| 欧美激情视频网| 欧美日韩性视频| 亚洲欧美综合精品久久成人| 国内免费久久久久久久久久久| 欧美激情xxxxx| 一个人看的www欧美| 久久久久在线观看| 久久精品久久精品亚洲人| 亚洲自拍偷拍一区| 中文字幕亚洲第一| 81精品国产乱码久久久久久| 日韩欧美在线视频观看| 日韩中文第一页| 在线免费观看羞羞视频一区二区| 欧美日韩精品中文字幕| 亚洲无av在线中文字幕| 国产美女搞久久| 欧美中文字幕视频在线观看| 亚洲欧美日韩在线一区| 欧美黑人xxxx| 亚洲国产成人精品女人久久久| 国产午夜精品美女视频明星a级| 久久免费视频在线| 中文国产成人精品| 国产成人久久久| 富二代精品短视频| 亚洲精美色品网站| 欧美一级视频在线观看| 日本最新高清不卡中文字幕| 91精品在线观看视频| 久久香蕉国产线看观看av| 国产日韩欧美在线播放| 亚洲新中文字幕| 国产精品第一视频| 少妇高潮久久久久久潘金莲| 国产精品久久久久久久久久东京| 国产精品极品美女在线观看免费| 亚洲天堂开心观看| 久久久久久久久久国产精品| 91日本在线观看| 国产精品 欧美在线| 欧美激情一区二区久久久| 91在线视频成人| 成人动漫网站在线观看| 亚洲一区中文字幕| 在线看欧美日韩| 91国内精品久久| 国产成人精品在线| 欧美性一区二区三区| 国产欧美精品日韩精品| 亚洲精品永久免费| 亚洲福利视频免费观看| 亚洲精品综合久久中文字幕| 91精品国产色综合久久不卡98口| 97免费视频在线| 中文字幕日韩在线视频| 久久久久久国产免费| 欧美性极品xxxx娇小| 69久久夜色精品国产69| 久久久国产一区二区| 欧美在线一级视频| 精品视频在线观看日韩| 久久久久久久久久国产精品| 78m国产成人精品视频| 亚洲欧美色婷婷| 九九热精品在线| 国产精品高潮粉嫩av| www.久久草.com| 亚洲国产成人精品一区二区| 亚洲色图国产精品| 精品国产欧美一区二区五十路| 亚洲欧美国内爽妇网| 欧美日韩免费在线| 2020欧美日韩在线视频| 欧美成人精品h版在线观看| 欧美成人午夜影院| 国产成人精品在线视频| 亚洲国产精品成人av| 亚洲一区二区三区sesese| 成人激情视频免费在线| 成人免费网站在线观看| 国产精品pans私拍| 欧美一区深夜视频| 亚洲欧美综合另类中字| 国产精品久久久久av免费| 亚洲成人黄色网| 欧洲一区二区视频| 久久久久久久久久久久久久久久久久av| 红桃视频成人在线观看| 日韩成人在线网站| 久久国产精彩视频| 国产欧美日韩精品丝袜高跟鞋| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲精品动漫100p| 97精品免费视频| 九九热精品视频国产| 国产精品久久久久免费a∨| 91社区国产高清| 国产成人在线视频| 午夜免费在线观看精品视频| 精品美女国产在线| 欧美国产亚洲视频| 欧美在线亚洲一区| 亚洲人成电影网站色www| 久久男人资源视频| 成人免费在线视频网址| 97视频在线播放| 美女福利精品视频| 欧美成人国产va精品日本一级| 欧美视频在线观看免费| 国产精品高潮视频| 国产日韩精品在线| 97免费视频在线| 91欧美精品成人综合在线观看| 亚洲精品成人久久电影| 精品国产乱码久久久久酒店| 国产精品69久久久久| 国产精品视频大全|