您的位置:首页 > Web前端 > JQuery

50个必备的实用jQuery代码段

2012-04-19 14:10 323 查看
1.如何修改jQuery默认编码(例如默认UTF-8改成改GB2312):

2.解决jQuery,prototype共存,$全局变量冲突问题:

注意:一定要先引入prototype.js再引入jquery.js,先后顺序不可错。

3.jQuery判断元素上是否绑定了事件

4.如何使用jQuery来切换样式表

5.如何限制选择范围(基于优化目的):

//尽可能使用标签名来作为类名的前缀,


//这样jQuery就不需要花费更多的时间来搜索

//你想要的元素。还要记住的一点是,

//针对于你的页面上的元素的操作越具体化,

//就越能降低执行和搜索的时间。

var
in_stock=$(
'#shopping_cart_itemsinput.is_in_stock'
);


<ulid=
"shopping_cart_items"
>

  <li><inputtype=
"radio"

value=
"Item-X"

name=
"item"

class=
"is_in_stock"

/>ItemX</li>

  <li><inputtype=
"radio"

value=
"Item-Y"

name=
"item"

class=
"3-5_days"

/>ItemY</li>

  <li><inputtype=
"radio"

value=
"Item-Z"

name=
"item"

class=
"unknown"

/>ItemZ</li>

</ul>

6.如何正确地使用toggleClass:

7.如何设置IE特有的功能:

8.如何使用jQuery来代替一个元素:

9.如何验证某个元素是否为空:

10.如何从一个未排序的集合中找出某个元素的索引号

11.如何把函数绑定到事件上:

//方法一


$(
'#foo'
).click(
function
(event){

  alert(
'Userclickedon"foo."'
);

});


//方法二,支持动态传参


$(
'#foo'
).bind(
'click'
,{test1:
"abc"
,
test2:
"123"
},
function
(event){

  alert(
'Userclickedon"foo."'

+event.data.test1+event.data.test2);

});

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

13.在创建元素时,如何使用对象字面量(literal)来定义属性

14.如何使用多个属性来进行过滤

15.如何使用jQuery来预加载图像

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.如何为任何与选择器相匹配的元素设置事件处理程序:

$(
'button.someClass'
).live(
'click'
,someFunction);


//注意,在jQuery1.4.2中,delegate和undelegate选项

//被引入代替live,因为它们提供了更好的上下文支持

//例如,就table来说,以前你会用

$(
"table"
).each(
function
(){

  $(
"td"
,
this
).live(
"hover"
,
function
(){

    $(
this
).toggleClass(
"hover"
);

  });

});

//现在用


$(
"table"
).delegate(
"td"
,
"hover"
,

function
(){


  $(
this
).toggleClass(
"hover"
);

});

17.如何找到一个已经被选中的option元素:

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


18.如何隐藏一个包含了某个值文本的元素:

19.如何创建嵌套的过滤器:

//允许你减少集合中的匹配元素的过滤器,


//只剩下那些与给定的选择器匹配的部分。在这种情况下,

//查询删除了任何没(:not)有(:has)

//包含class为“selected”(.selected)的子节点。

.filter(
":not(:has(.selected))"
)

20.如何检测各种浏览器:

检测Safari(if($.browser.safari)),检测IE6及之后版本(if($.browser.msie&&$.browser.version>6)),检测IE6及之前版本(if($.browser.msie&&$.browser.version<=6)),检测FireFox2及之后版本(if($.browser.mozilla&&$.browser.version>='1.8'))

21.任何使用has()来检查某个元素是否包含某个类或是元素:

22.如何禁用右键单击上下文菜单:

23.如何定义一个定制的选择器

$.expr[
':'
].mycustomselector=
function
(element,index,meta,stack){


//element-一个DOM元素

//index–栈中的当前循环索引

//meta–有关选择器的元数据

//stack–要循环的所有元素的栈

//如果包含了当前元素就返回true

//如果不包含当前元素就返回false};

//定制选择器的用法:


$(
'.someClasses:test'
).doSomething();

24.如何检查某个元素是否存在

if
($(
'#someDiv'
).length){


//万岁!!!它存在……


}

25.如何使用jQuery来检测右键和左键的鼠标单击两种情况:

$(
"#someelement"
).live(
'click'
,
function
(e){


if
((!$.browser.msie&&e.button==0)||($.browser.msie&&e.button==1)){

alert(
"LeftMouseButtonClicked"
);

}
else
if
(e.button==2){

alert(
"RightMouseButtonClicked"
);

}

});

26.如何替换串中的词

var

el=$(
'#id'
);


el.html(el.html().replace(/word/ig,
''
));

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中:

var

newDiv=$(
'<div></div>'
);


newDiv.attr(
'id'
,
'myNewDiv'
).appendTo(
'body'
);

29.如何限制“Text-Area”域中的字符的个数:

jQuery.fn.maxLength=
function
(max){


return

this
.each(
function
(){

var

type=
this
.tagName.toLowerCase();

var

inputType=
this
.type?
this
.type.toLowerCase():
null
;


if
(type==
"input"
&&inputType==
"text"
||inputType==
"password"
){

//ApplythestandardmaxLength

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);

}

};

}

});

};

//用法


$(
'#mytextarea'
).maxLength(500);

30.如何jQuery注册和禁用jQuery全局事件

31.如何在jQuery中克隆一个元素:

var

cloned=$(
'#somediv'
).clone();


32.在jQuery中如何测试某个元素是否可见

if
($(element).is(
':visible'
)){

  
//该元素是可见的

}

33.如何把一个元素放在屏幕的中心位置:

jQuery.fn.center=
function

(){


  
return

this
.each(
function
(){

    $(
this
).css({

      position:
'absolute'
,

      top,($(window).height()-
this
.height())/2+$(window).scrollTop()+
'px'
,


      left,($(window).width()-
this
.width())/2+$(window).scrollLeft()+
'px'

    });

  });

}

//这样来使用上面的函数:

$(element).center();

34.如何把有着某个特定名称的所有元素的值都放到一个数组中:

35.如何从元素中除去HTML

36.如何使用closest来取得父元素:

37.如何使用Firebug和Firefox来记录jQuery事件日志:

//允许链式日志记录


jQuery.log=jQuery.fn.log=
function

(msg){

  
if

(console){

    console.log(
"%s:%o"
,msg,
this
);


  }

  
return

this
;

};

//用法:


$(
'#someDiv'
).hide().log(
'divhidden'
).addClass(
'someClass'
);

38.如何强制在弹出窗口中打开链接:

39.如何强制在新的选项卡中打开链接:

40.在jQuery中如何使用.siblings()来选择同辈元素

//不这样做


$(
'#navli'
).click(
function
(){

  $(
'#navli'
).removeClass(
'active'
);

  $(
this
).addClass(
'active'
);

});

//替代做法是


$(
'#navli'
).click(
function
(){

  $(
this
).addClass(
'active'
).siblings().removeClass(
'active'
);

});

41.如何切换页面上的所有复选框:

42.如何基于一些输入文本来过滤一个元素列表:

//如果元素的值和输入的文本相匹配的话,该元素将被返回


$(
'.someClass'
).filter(
function
(){

  
return

$(
this
).attr(
'value'
)==$(
'input#someId'
).val();

})

43.如何获得鼠标垫光标位置x和y

$(document).ready(
function
(){


  $(document).mousemove(
function
(e){

    $(’
#XY’).html(”XAxis:”+e.pageX+”|YAxis”+e.pageY);

  });

});

44.如何扩展String对象的方法

45.如何规范化写jQuery插件:

(
function
($){


$.fn.extend({

pluginOne:
function
(){

return

this
.each(
function
(){

//mycode

});

},

pluginTwo:
function
(){

return

this
.each(
function
(){

//mycode

});

}

});

})(jQuery);

46.如何检查图像是否已经被完全加载进来

47.如何使用jQuery来为事件指定命名空间:

//事件可以这样绑定命名空间


$(
'input'
).bind(
'blur.validation'
,
function
(e){

  
//...

});

//data方法也接受命名空间

$(
'input'
).data(
'validation.isValid'
,
true
);

48.如何检查cookie是否启用

var

dt=
new

Date();


dt.setSeconds(dt.getSeconds()+60);

document.cookie=
"cookietest=1;expires="

+dt.toGMTString();

var

cookiesEnabled=document.cookie.indexOf(
"cookietest="
)!=-1;

if
(!cookiesEnabled){

  
//没有启用cookie

}

49.如何让cookie过期:

var

date=
new

Date();


date.setTime(date.getTime()+(x*60*1000));

$.cookie(
'example'
,
'foo'
,{expires:date});

50.如何使用一个可点击的链接来替换页面中任何的URL

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: