50個(gè)必備的實(shí)用jQuery代碼段

2012-04-28 14:12:38來(lái)源:oschina作者:

jQuery現(xiàn)在已經(jīng)成為網(wǎng)頁(yè)開(kāi)發(fā)中必不可少的工具了,這里為您搜集整理了50個(gè)必備的實(shí)用jQuery代碼段:

jQuery現(xiàn)在已經(jīng)成為網(wǎng)頁(yè)開(kāi)發(fā)中必不可少的工具了,這里為您搜集整理了50個(gè)必備的實(shí)用jQuery代碼段:

1. 如何修改jQuery默認(rèn)編碼(例如默認(rèn)UTF-8改成改GB2312):

$.ajaxSetup({
 ajaxSettings:{ contentType:"application/x-www-form-urlencoded;chartset=GB2312"}
});

2. 解決jQuery, prototype共存,$全局變量沖突問(wèn)題:

<script src="prototype.js"></script> <script src="http://blogbeta.blueidea.com/jquery.js"></script> <script type="text/javascript">       jQuery.noConflict();</script>
注意:一定要先引入prototype.js 再引入jquery.js,先后順序不可錯(cuò)。

3. jQuery 判斷元素上是否綁定了事件

//jQuery event封裝支持判斷元素上是否綁定了事件,此方法只適用于jQuery綁定的事件 var $events = $("#foo").data("events");if( $events && $events["click"] ){
  //your code }

4. 如何使用jQuery來(lái)切換樣式表

//找出你希望切換的媒體類(lèi)型(media-type),然后把href設(shè)置成新的樣式表。 $('link[media='screen']').attr('href', 'alternative.css');

5. 如何限制選擇范圍(基于優(yōu)化目的):

//盡可能使用標(biāo)簽名來(lái)作為類(lèi)名的前綴, //這樣jQuery就不需要花費(fèi)更多的時(shí)間來(lái)搜索 //你想要的元素。還要記住的一點(diǎn)是, //針對(duì)于你的頁(yè)面上的元素的操作越具體化, //就越能降低執(zhí)行和搜索的時(shí)間。 var in_stock = $('#shopping_cart_items input.is_in_stock');<ul id="shopping_cart_items">   <li><input type="radio" value="Item-X" name="item" class="is_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)類(lèi)允許你根據(jù)某個(gè)類(lèi)的 //是否存在來(lái)添加或是刪除該類(lèi)。 //這種情況下有些開(kāi)發(fā)者使用: a.hasClass('blueButton') ? a.removeClass('blueButton') : a.addClass('blueButton');//toggleClass允許你使用下面的語(yǔ)句來(lái)很容易地做到這一點(diǎn) a.toggleClass('blueButton');

7. 如何設(shè)置IE特有的功能:

if ($.browser.msie) {// Internet Explorer就是個(gè)虐待狂 }

8. 如何使用jQuery來(lái)代替一個(gè)元素:

$('#thatdiv').replaceWith('fnuh');

9. 如何驗(yàn)證某個(gè)元素是否為空:

// 方法一 if (! $('#keks').html()) {//什么都沒(méi)有找到; }// 方法二 if ($('#keks').is(":empty")) {//什么都沒(méi)有找到; }

10. 如何從一個(gè)未排序的集合中找出某個(gè)元素的索引號(hào)

$("ul > li").click(function () {  var index = $(this).prevAll().length; //prevAll([expr]): 查找當(dāng)前元素之前所有的同輩元素 });

11. 如何把函數(shù)綁定到事件上:

//方法一 $('#foo').click(function(event) {
  alert('User clicked on "foo."');
}); //方法二, 支持動(dòng)態(tài)傳參 $('#foo').bind('click', {test1:"abc", test2:"123"}, function(event) {
  alert('User clicked on "foo."' + event.data.test1 + event.data.test2 );
});

12. 如何追加或是添加html到元素中:

$('#lal').append('sometext');

13. 在創(chuàng)建元素時(shí),如何使用對(duì)象字面量(literal)來(lái)定義屬性

var e = $("", { href: "#", class: "a-class another-class", title: "..." });

14. 如何使用多個(gè)屬性來(lái)進(jìn)行過(guò)濾

//在使用許多相類(lèi)似的有著不同類(lèi)型的input元素時(shí),  //這種基于精確度的方法很有用  var elements = $('#someid input[type=sometype][value=somevalue]').get();

15. 如何使用jQuery來(lái)預(yù)加載圖像:

jQuery.preloadImages = function() {   for(var i = 0; i < arguments.length; i++) {
    $("<img />").attr('src', arguments[i]);
  }
}; //用法  $.preloadImages('image1.gif', '/path/to/image2.png', 'some/image3.jpg');

16. 如何為任何與選擇器相匹配的元素設(shè)置事件處理程序:

$('button.someClass').live('click', someFunction); //注意,在jQuery 1.4.2中,delegate和undelegate選項(xiàng)  //被引入代替live,因?yàn)樗鼈兲峁┝烁玫纳舷挛闹С?nbsp; //例如,就table來(lái)說(shuō),以前你會(huì)用 $("table").each(function(){
  $("td", this).live("hover", function(){
    $(this).toggleClass("hover");
  });
}); //現(xiàn)在用  $("table").delegate("td", "hover", function(){
  $(this).toggleClass("hover");
});

17. 如何找到一個(gè)已經(jīng)被選中的option元素:

$('#someElement').find('option:selected');

18. 如何隱藏一個(gè)包含了某個(gè)值文本的元素:

$("p.value:contains('thetextvalue')").hide();

19. 如何創(chuàng)建嵌套的過(guò)濾器:

//允許你減少集合中的匹配元素的過(guò)濾器, //只剩下那些與給定的選擇器匹配的部分。在這種情況下, //查詢(xún)刪除了任何沒(méi)(:not)有(:has) //包含class為“selected”(.selected)的子節(jié)點(diǎn)。 .filter(":not(:has(.selected))")

20. 如何檢測(cè)各種瀏覽器:

檢測(cè)Safari (if( $.browser.safari)), 
檢測(cè)IE6及之后版本 (if ($.browser.msie && $.browser.version > 6 )), 
檢測(cè)IE6及之前版本 (if ($.browser.msie && $.browser.version <= 6 )), 
檢測(cè)FireFox 2及之后版本 (if ($.browser.mozilla && $.browser.version >= '1.8' ))

21. 任何使用has()來(lái)檢查某個(gè)元素是否包含某個(gè)類(lèi)或是元素:

//jQuery 1.4.*包含了對(duì)這一has方法的支持。 //該方法找出某個(gè)元素是否包含了其他另一個(gè)元素類(lèi)或是其他任何的你正在查找并要在其之上進(jìn)行操作的東東。 $("input").has(".email").addClass("email_icon");

22. 如何禁用右鍵單擊上下文菜單:

$(document).bind('contextmenu',function(e){
  return false;
});

23. 如何定義一個(gè)定制的選擇器

$.expr[':'].mycustomselector = function(element, index, meta, stack){ // element- 一個(gè)DOM元素  // index – 棧中的當(dāng)前循環(huán)索引  // meta – 有關(guān)選擇器的元數(shù)據(jù)  // stack – 要循環(huán)的所有元素的棧  // 如果包含了當(dāng)前元素就返回true  // 如果不包含當(dāng)前元素就返回false };  // 定制選擇器的用法:  $('.someClasses:test').doSomething();

24. 如何檢查某個(gè)元素是否存在

if ($('#someDiv').length) { //萬(wàn)歲。!它存在……  }

25. 如何使用jQuery來(lái)檢測(cè)右鍵和左鍵的鼠標(biāo)單擊兩種情況:

$("#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");
    }
});

關(guān)鍵詞:jQuery

贊助商鏈接: