jQuery 中让我误解的那些方法
至今我都不能说把 jQuery 中的方法在实践中都用了一遍,
一部分是用不到,一部分则是我未能体会它的魅力,
所以今天就来收录一下,那些从我们之间溜走的美丽。
$.fn.add()
一开始对它的理解就是 $("p").add("span") 等同于 $("p, span") 而已,
而其实不然,$.fn.add() 更多的用在链式结构上,看两个例子就懂了。
// 不但克隆 p,还在加上一个 span
$("p").clone().add("<span>Again</span>").appendTo(document.body);
// 所有的 div 加上边框和背景,p 也跟着加了个背景
$("div").css("border", "2px solid red").add("p").css("background", "yellow");
$.queue() 和 $.dequeue()
这个和 $.fn.queue() 并不一样哟,$.queue() 不只能运用在 jquery 动画当中,乃至可以方便地改变运行顺序/延时等。
这是个非常 nice 的方法,但我想以后再细讲,那样就可以又多一篇文章了,哈,✧٩(ˊωˋ*)و✧
$.fn.remove() / $.fn.detach() / $.fn.empty()
官方文档就给出了很好的解释,
$.fn.detach() 与 $.fn.remove() 不同的是,所有绑定的事件、附加的数据等都会保留下来。
而 $.fn.empty() 则是清空所有子节点,与 dom.innerHTML = "" 和 $.fn.html("") 相比更彻底,还删掉了 cache 和事件,后两者明显简单粗暴得多。
$.fn.attr() 和 $.fn.prop()
这个错误可以说伴随了我好几年,实在惭愧...
显然设置那些“本土”属性,$.fn.prop() 实在好太多了,当初寻找为什么设了 selected 还是显示第一项着实急死人。
// $.fn.prop() 适用于 HTML 元素本身就带有的固有属性的处理
$("#chk1").prop("checked") == false
$("#chk2").prop("checked") == true
// $.fn.attr() 就更适合你瞎搞了
$("#chk1").attr("checked") == undefined
$("#chk2").attr("checked") == "checked"
$.fn.closest() 和 $.fn.parents()
官方文档如斯说: $.fn.closest() 和 $.fn.parents() 的主要区别是:1,前者从当前元素开始匹配寻找,后者从父元素开始匹配寻找;2,前者逐级向上查找,直到发现匹配的元素后就停止了,后者一直向上查找直到根元素,然后把这些元素放进一个临时集合中,再用给定的选择器表达式去过滤;3,前者返回0或1个元素,后者可能包含0个,1个,或者多个元素。
// 使用 $.fn.closest() 可以很好地避免想点的是 li 结果 e.target 是子级 a 的情况哟
$("li").on("click",function(e){
console.log(e.target);
console.log($(e.target).closest("li"));
});
再来点小玩意儿:
$.when().then() 可以轻松解决回调,就是回调后的参数烦了点
$.when($.ajax("/page1.php"), $.ajax("/page2.php")) .then(myFunc, myFailure);
操作 iframe 里的元素,但这得 iframe 加载完才行,但如何检测它是否加载完成博主就不知道了,求指教
$(window).on("click",function(){
$("iframe").contents().find("body").html("I'm in an iframe!");
});
补充,后来检测 iframe 加载完成的方法还是找到了,但感觉并不好,但还是先分享出来吧
<iframe id="iframe" data-src="http://www.baidu.com"></iframe> $.fn.iframeLoaded = function(callback) {
return this.each(function(){
iframeLoaded(this, callback);
});
};
function iframeLoaded(elem, callback) {
iframe = typeof elem === "string" ? document.querySelector(elem) : elem;
iframe.src = iframe.getAttribute("data-src");
iframe.onload = iframe.onreadystatechange = function() {
if (!iframe.readyState || iframe.readyState == "complete") {
if (callback) callback();
}
}
}
$("iframe").iframeLoaded(function(){
alert("ok");
})
jQuery 中让我误解的那些方法的更多相关文章
- Jquery中each的三种遍历方法
Jquery中each的三种遍历方法 $.post("urladdr", { "data" : "data" }, function(dat ...
- jquery中交替点击事件toggle方法的使用示例
jquery中交替点击事件toggle方法中有两个参数,分别是要交替执行的事件.如果不传参默认是显示隐藏功能,下面有个不错的示例,感兴趣的朋友可以参考下 复制代码代码如下: $('#clickId‘) ...
- jquery中获取iframe的id的方法:
jquery中获取iframe的id的方法: var frameId = window.frameElement && window.frameElement.id || ''; al ...
- jQuery中detach&&remove&&empty三种方法的区别
jQuery中empty&&remove&&detach三种方法的区别 empty():移除指定元素内部的所有内容,但不包括它本身 remove():移除指定元素内部的 ...
- jquery中隐藏div的几种方法
//jQuery中的显示.隐藏方法 $("#id").show()://表示display:block, $("#id").hide()://表示disp ...
- JQuery中serialize()、serializeArray()和param()方法示例介绍
在项目中做form表单提交的时候,如果参数比较少,可以通过jquery一个个取得,但是当 form表参数很多的情况下,还是一一取得的话无疑是加大了工作量,那我们需要咱们获取到表单的所有参数呢,幸好,j ...
- js原生态函数中使用jQuery中的 $(this)无效的解决方法
原文地址:http://www.jb51.net/article/27238.htm 今天遇到一个听郁闷的问题,正如title所说 js中原生态函数在jQuery 中使用 $(this) 被解析成un ...
- jQuery中绑定事件的几种方法
以click事件为例,jQuery中绑定事件有三种方法: (1)target.click(function(){}); (2)target.bind("click",functi ...
- jQuery中动态创建、添加元素的方法总结
<input type="button" value="创建元素" id="btn"> <div id="box ...
随机推荐
- Manjaro折腾笔记:我的数据科学环境搭建之路
ss并且开机启动 0. 安装shadowsocks sudo pip install shadowsocks 1. 建立配置文件ss.json 我的位置是:/home/ray/Documents/sh ...
- Eclipse 添加书签
Eclipse 添加书签 关于书签 Eclipse 中可以在编辑器的任意一行添加书签. 您可以使用书签作为提示信息,或者使用书签快速定位到文件中的指定的行. 添加书签 如果你想设置书签,你只需要在垂直 ...
- day13迭代器与生成器
三个作业: # 1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码 login_dic = {'alex':False} def ...
- day1笔记 初识python,paython基础
一.计算机,操作系统 软件发送指令给操作系统,操作系统再把指令发送给 内存,cpu,硬盘等 二.Python的历史. Python2: 1.臃肿,源码的重复量很多.2.语法不清晰,掺杂着c,++,P ...
- cocos2d-x - android 学习(集成NDK、配置开发环境)
先来贴上一大神的博客:日月之明 --- http://www.cnblogs.com/lhming/tag/cocs2d-x/ 需要工具和软件包:Eclipse.Android SDK.Android ...
- Android无线测试之—UiAutomator UiDevice API介绍五
屏幕旋转 一.屏幕旋转相关知识: 1)旋转方向:0度,90度(向左转),180度,270度(向右转) 2)重力感应器:重力感应器是旋转所依靠的 3)固定位置:指将屏幕方向固定在0度,90度或者180度 ...
- ThinkPHP部分内置函数
D.F.S.C.L.A.I 他们都在functions.php这个文件家下面我分别说明一下他们的功能 D() 加载Model类M() 加载Model类 A() 加载Action类L() 获取语言定义C ...
- 山石防火墙debug
debug dp basic debug dp snoop debup dp drop debug dp filter src-ip ? show logging debug
- IIS配置(持续更新中...)
本文暂时适用于IIS7.5. IIS配置文件路径:"C:\Windows\System32\inetsrv\config\applicationHost.config" 1.sta ...
- 爬虫入门【8】Python连接MongoDB的用法简介
MongoDB的连接和数据存取 MongoDB是一种跨平台,面向文档的NoSQL数据库,提供高性能,高可用性并且易于扩展. 包含数据库,集合,文档等几个重要概念. 我们在这里不介绍MongoDB的特点 ...