50个实用的jq代码段整理
个人博客:
|
||
//允许你减少集合中的匹配元素的过滤器, | ||
//只剩下那些与给定的选择器匹配的部分。在这种情况下, | ||
//查询删除了任何没(:not)有(:has) | ||
//包含class为“selected”(.selected)的子节点。 | ||
.filter(":not(:has(.selected))") | ||
2. 如何重用元素搜索 | ||
var allItems = $("div.item"); | ||
var keepList = $("div#container1 div.item"); | ||
//现在你可以继续使用这些jQuery对象来工作了。例如, | ||
//基于复选框裁剪“keep list”,复选框的名称 | ||
//符合 | ||
< DIV >class names: | ||
$(formToLookAt + " input:checked").each(function() { | ||
keepList = keepList.filter("." + $(this).attr("name")); | ||
}); | ||
< /DIV> | ||
3. 任何使用has()来检查某个元素是否包含某个类或是元素: | ||
//jQuery 1.4.*包含了对这一has方法的支持。该方法找出 | ||
//某个元素是否包含了其他另一个元素类或是其他任何的 | ||
//你正在查找并要在其之上进行操作的东东。 | ||
$("input").has(".email").addClass("email_icon"); | ||
4. 如何使用jQuery来切换样式表 | ||
//找出你希望切换的媒体类型(media-type),然后把href设置成新的样式表。 | ||
$('link[media='screen']').attr('href', 'Alternative.css'); | ||
5. 如何限制选择范围(基于优化目的): | ||
//尽可能使用标签名来作为类名的前缀, | ||
//这样jQuery就不需要花费更多的时间来搜索 | ||
//你想要的元素。还要记住的一点是, | ||
//针对于你的页面上的元素的操作越具体化, | ||
//就越能降低执行和搜索的时间。 | ||
var in_stock = $('#shopping_cart_items input.is_in_stock'); | ||
<ul id="shopping_cart_items"> | ||
<li><input type="radio" value="Item-X" name="item" /> Item X</li> | ||
<li><input type="radio" value="Item-Y" name="item" /> Item Y</li> | ||
<li><input type="radio" value="Item-Z" name="item" /> Item Z</li> | ||
</ul> | ||
6. 如何正确地使用ToggleClass: | ||
//切换(toggle)类允许你根据某个类的 | ||
//是否存在来添加或是删除该类。 | ||
//这种情况下有些开发者使用: | ||
a.hasClass('blueButton') ? a.removeClass('blueButton') : a.addClass('blueButton'); | ||
//toggleClass允许你使用下面的语句来很容易地做到这一点 | ||
a.toggleClass('blueButton'); | ||
7. 如何设置IE特有的功能: | ||
if ($.browser.msie) { | ||
// Internet Explorer就是个虐待狂 | ||
} | ||
8. 如何使用jQuery来代替一个元素: | ||
$('#thatdiv').replaceWith('fnuh'); | ||
9. 如何验证某个元素是否为空: | ||
if ($('#keks').html()) { | ||
//什么都没有找到; | ||
} | ||
10. 如何从一个未排序的集合中找出某个元素的索引号 | ||
$("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. 在创建元素时,如何使用对象字面量(literal)来定义属性 | ||
var e = $("", { href: "#", class: "a-class another-class", title: "..." }); | ||
14. 如何使用多个属性来进行过滤 | ||
//在使用许多相类似的有着不同类型的input元素时, | ||
//这种基于精确度的方法很有用 | ||
var elements = $('#someid input[type=sometype][value=somevalue]').get(); | ||
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); | ||
//注意,在jQuery 1.4.2中,delegate和undelegate选项 | ||
//被引入代替live,因为它们提供了更好的上下文支持 | ||
//例如,就table来说,以前你会用 | ||
//.live() | ||
$("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. 如何隐藏一个包含了某个值文本的元素: | ||
$("p.value:contains('thetextvalue')").hide(); | ||
19. 如果自动滚动到页面中的某区域 | ||
jQuery.fn.autoscroll = function(selector) { | ||
$('html,body').animate( | ||
{scrollTop: $(selector).offset().top}, | ||
500 | ||
}; | ||
} | ||
//然后像这样来滚动到你希望去到的class/area上。 | ||
$('.area_name').autoscroll(); | ||
20. 如何检测各种浏览器: | ||
检测Safari (if( $.browser.safari)), | ||
检测IE6及之后版本 (if ($.browser.msie && $.browser.version > 6 )), | ||
检测IE6及之前版本 (if ($.browser.msie && $.browser.version <= 6 )), | ||
检测FireFox 2及之后版本 (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- 一个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("Left Mouse Button Clicked"); | ||
} else if(e.button == 2) { | ||
alert("Right Mouse Button Clicked"); | ||
} | ||
}); | ||
26. 如何显示或是删除input域中的默认值 | ||
//这段代码展示了在用户未输入值时, | ||
//如何在文本类型的input域中保留 | ||
//一个默认值 | ||
wap_val = []; | ||
$(".swap").each(function(i){ | ||
wap_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 type="text" value="Enter Username here.." /> | ||
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 = $(''); | ||
newDiv.attr('id','myNewDiv').appendTo('body'); | ||
29. 如何限制“Text-Area”域中的字符的个数: | ||
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); | ||
} | ||
}; | ||
} | ||
}); | ||
}; | ||
//用法 | ||
$('#mytextarea').maxLength(500); | ||
30. 如何为函数创建一个基本的测试 | ||
//把测试单独放在模块中 | ||
module("Module B"); | ||
test("some other test", function() { | ||
//指明测试内部预期有多少要运行的断言 | ||
expect(2); | ||
//一个比较断言,相当于JUnit的assertEquals | ||
equals( true, false, "failing test" ); | ||
equals( true, true, "passing test" ); | ||
}); | ||
31. 如何在jQuery中克隆一个元素: | ||
var cloned = $('#somediv').clone(); | ||
32. 在jQuery中如何测试某个元素是否可见 | ||
if($(element).is(':visible') == 'true') { | ||
//该元素是可见的 | ||
} | ||
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; | ||
} | ||
//这样来使用上面的函数: | ||
$(element).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); | ||
//用法: | ||
$('p').stripHtml(); | ||
36. 如何使用closest来取得父元素: | ||
$('#searchBox').closest('div'); | ||
37. 如何使用Firebug和Firefox来记录jQuery事件日志: | ||
// 允许链式日志记录 | ||
// 用法: | ||
$('#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. 在jQuery中如何使用.siblings()来选择同辈元素 | ||
// 不这样做 | ||
$('#nav li').click(function(){ | ||
$('#nav li').removeClass('active'); | ||
$(this).addClass('active'); | ||
}); | ||
//替代做法是 | ||
$('#nav li').click(function(){ | ||
$(this).addClass('active').siblings().removeClass('active'); | ||
}); | ||
41. 如何切换页面上的所有复选框: | ||
var tog = false; | ||
// 或者为true,如果它们在加载时为被选中状态的话 | ||
$('a').click(function() { | ||
$("input[type=checkbox]").attr("checked",!tog); | ||
tog = !tog; | ||
}); | ||
42. 如何基于一些输入文本来过滤一个元素列表: | ||
//如果元素的值和输入的文本相匹配的话 | ||
//该元素将被返回 | ||
$('.someClass').filter(function() { | ||
return $(this).attr('value') == $('input#someId').val(); | ||
}) | ||
43. 如何获得鼠标垫光标位置x和y | ||
$(document).ready(function() { | ||
$(document).mousemove(function(e){ | ||
$(’#XY’).html(”X Axis : ” + e.pageX + ” | Y Axis ” + e.pageY); | ||
}); | ||
}); | ||
44. 如何把整个的列表元素(List Element,LI)变成可点击的 | ||
$("ul li").click(function(){ | ||
window.location=$(this).find("a").attr("href"); | ||
return false; | ||
}); | ||
<ul> | ||
<li><a href="#">Link 1</a></li> | ||
<li><a href="#">Link 2</a></li> | ||
<li><a href="#">Link 3</a></li> | ||
<li><a href="#">Link 4</a></li> | ||
</ul> | ||
45. 如何使用jQuery来解析XML(基本的例子): | ||
function parseXml(xml) { | ||
//找到每个Tutorial并打印出author | ||
$(xml).find("Tutorial").each(function() { | ||
$("#output").append($(this).attr("author") + ""); | ||
}); | ||
} | ||
46. 如何检查图像是否已经被完全加载进来 | ||
$('#theImage').attr('src', 'image.jpg').load(function() { | ||
alert('This Image Has Been Loaded'); | ||
}); | ||
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 | ||
$.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); | ||
} | ||
//用法 | ||
$('p').replaceUrl(); |
50个实用的jq代码段整理的更多相关文章
- 50个实用的jQuery代码段让你成为更好的Web前端工程师
本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...
- 实用的JS代码段(表单篇)
整理了下比较实用的Javascript代码段,完整的代码参考 1 多个window.onload方法 由于onload方法时在页面加载完成后,自动调用的.因此被广泛的使用,但是弊端是只能实用onloa ...
- 50个必备的jQuery代码段
本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...
- JavaScript代码段整理笔记系列(二)
上篇介绍了15个常用代码段,本篇将把剩余的15个补齐,希望对大家有所帮助!!! 16.检测Shift.Alt.Ctrl键: event.shiftKey; //检测Shift event.altKey ...
- PyTorch 常用代码段整理
基础配置 检查 PyTorch 版本 torch.__version__ # PyTorch version torch.version.cuda ...
- JavaScript代码段整理笔记系列(一)
30段JavaScript代码——上篇 1.如何区分IE及非IE浏览器: if(!+[1,]){ //IE 11 不支持 alert("这是 IE 浏览器"): }else{ al ...
- 几个实用的CSS代码段总结
废话不多说,直接上代码,希望能帮到有需要的小伙伴 ①:遮罩 position: fixed; background: rgba(0, 0, 0, .4); top: 0; left: 0; right ...
- java常用代码段整理(持续更新)
FileWriter指定编码格式 FileWriter 默认是用(ISO-8859-1 or US-ASCII)西方编码的,总之不是UTF-8的,而FileWriter类有getEncoding方法, ...
- 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段 本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从j ...
随机推荐
- hdu1255 覆盖的面积(线段树面积交)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 面积交与面积并相似相比回了面积并,面积交一定会有思路,当然就是cover标记大于等于两次时. 但 ...
- 漫谈JavaScript中的作用域(scope)
什么是作用域 程序的执行,离不开作用域,也必须在作用域中才能将代码正确的执行. 所以作用域到底是什么,通俗的说,可以这样理解:作用域就是定义变量的位置,是变量和函数的可访问范围,控制着变量和函数的可见 ...
- .NET Core 微信小程序支付——(统一下单)
最近公司研发了几个电商小程序,还有一个核心的电商直播,只要是电商一般都会涉及到交易信息,离不开支付系统,这里我们统一实现小程序的支付流程(与服务号实现步骤一样). 目录1.开通小程序的支付能力2.商户 ...
- SpringBoot系列__01HelloWorld
接触SpringBoot很久了,但是一直没有很深入的研究一下源码,最近重启了博客,顺便开始深入研究一下技术. 1.简介 参照官方文档的说法,SpringBoot的设计理念就是为了简化Java程序员搭建 ...
- Python Flask打造一个视频网站实战视频教程
下载链接:https://www.yinxiangit.com/607.html 目录: 本套课程从零基础讲解flask开发网站.涉及到的知识点包括:Python和pycharm的安装.urls和视图 ...
- C#中Path类的常用方法
场景 打开VS,输入Path,我们可以看到其定义. 都是静态方法,所以我们可以使用类名直接调用. 实现 新建命令行程序,编码如下: string str = @"C:\Users\Admin ...
- Tomcat类加载器体系结构
<深入理解java虚拟机>——Tomcat类加载器体系结构 标签: java / 虚拟机 / tomcat Tomcat 等主流Web服务器为了实现下面的基本功能,都实现了不止一个自定义的 ...
- 60 (OC)* 23中设计模式
git设计模式
- 23 (OC)* 推送、APNS
1:APNS的推送机制 2:APNS推送通知的详细工作流程 3:准备工作 4:TCP长连接 5:消息格式 6:卸载后接受不到消息 1.APNS的推送机制 首先我们看一下苹果官方给出的对ios推送机制的 ...
- Apache Hadoop集群安装(NameNode HA + YARN HA + SPARK + 机架感知)
1.主机规划 序号 主机名 IP地址 角色 1 nn-1 192.168.9.21 NameNode.mr-jobhistory.zookeeper.JournalNode 2 nn-2 192.16 ...