jQuery中容易让人困惑的东西
前言:jqueryt很灵活,太灵活了,可以说是他一个优点,也是他一个缺点,达到一种效果,十个人也许会用十种不同的方法来实现这个过程,结果一样,过程不一样,这到底是好,还是坏呢。
一,什么是jquery
jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。说白了,jquery就是javascript。只不过按照人的习惯思维把它封装了一个比较强大的框架。还有一点jquery能够把html和javascript尽量分离,这也是我愿意用jquery的一个重要原因。jqueryt很灵活,太灵活了,可以说是他一个优点,也是他一个缺点,达到一种效果,十个人也许会用十种不同的方法来实现这个过程,结果一样,过程不一样,这到底是好,还是坏呢。就各说各的理了。
二,学习和使用jquery的困惑
1)$.fn.extend({})和$.extend({})
$.fn.extend是扩展jQuery元素集来提供新的方法(通常用来制作插件)。解释一下,就是通过$.fn.extend产生的jquery方法在调用jquery时,不会包括括在jquery自身的对象中,它是扩展插件的形势,继承的。你可以把它理解为php中的extend。
举个例子 $.fn.extend({
checkname: function() {
if($.trim($(this).val()) != ""){
return true;
}else{
return false;
}
}
});
调用时 $("input.name").checkname();
$.extend是扩展jQuery对象本身。解释一下,就是说通过$.extend产生的jquery方法,在调用jquery时,会包括在jquery自身的对象中。说白了,就是在jquery对象中添加方法,例如
$.extend({
checkname: function(name) {
if($.trim(name!= ""){
return true;
}else{
return false;
}
}
});
调用时 $.checkname($("input.name").val());
2)$().each({})和$.each({})
$().each({})用来循环数组和对像
<ul>
<li><div>Glen</div></li>
<li>Tane</li>
<li>Ralph</li>
</ul>
下面是循环对象
$("ul li").each(function(k,v){
alert("key="+k+",value="+$(v).html());
});
);
下面是循环数组
array = [0,1,2];
$(array).each(function(k,v){
alert("key="+k+",value="+v);
})
$.each({})可用来循环所有数组和对象,个人觉得他们二个没什么差别,除了写法不一样外
注意:function(k)这里k是下标,function(k,v)这是k还是下标,v不一定,有可能是数组里面的一个值,也有可能是一个对象,如果是对象时,如果参数不写出来,默认情况是this
3),$(" :contains()")和$(" :has()")
$(" :contains()") 匹配包含给定文本的元素,contains里面包括的是文本内空
$("li:contains('Ra')").css('color','red');
$(" :has()")匹配含有选择器所匹配的元素的元素,has里面包话的是一个标签
$("li:has(div)").css('color','red');
4), $(" :first")和 $(" :first-child")
$(" :first") 匹配找到的第一个元素
$(" :first-child") 匹配第一个子元素, ':first' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素
<div>
<ul>
<li>list item 1</li>
<li>list item 2
<ul>
<li>list item 2-a</li>
<li>list item 2-b</li>
</ul>
</li>
<li>list item 3</li>
<li>list item 4</li>
</ul>
</div>
$("ul li:first").css('color','red'); //只匹配第一次,
$("ul li:first-child").css('color','red'); //匹配每个符合要求的对象
$().html()和$().text() $().html()取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。 $().text()结果是由所有匹配元素包含的文本内容组合起来的文本。这个方法对HTML和XML文档都有效。 <span><p>Hello</p></span> $('span').html();
//得到的结果是<p>Hello</p>
$('span').texxt(); //得到的结果是Hello
6), $().empty()和$().remove() $().empty() 清空匹配元素中的内空,但不清空自身、
$().remove(),清空匹配元素中的内空,以及自身 <span><p>Hello</p></span>
$('p').empty() //得到的结果是<span><p></p></span> $('p').remove() //得到的结果是<span></span>
jQuery中容易让人困惑的东西的更多相关文章
- jQuery中的&& ||
jQuery1.2.6 clean方法中有这么一段第一眼看去会让人晕掉的方法.完全不知其所言. “||, && 可以这样用?”,“这段东西最终返回的是个什么对象啊?” // Trim ...
- 小议jQuery中的事件
学了jQuery这么长时间,到这里真的有一种柳暗花明又一村的感觉,在这里先表达一下自己学这一章节的happy心情吧(在严厉的金工实习老师眼皮底下偷偷学习,当然还有各种nerves~). 1加载DOM ...
- jQuery中的编程范式
浏览器前端编程的面貌自2005年以来已经发生了深刻的变化,这并不简单的意味着出现了大量功能丰富的基础库,使得我们可以更加方便的编写业务代码,更重要的是我们看待前端技术的观念发生了重大转变,明确意识到了 ...
- jQuery 中的编程范式
浏览器前端编程的面貌自2005年以来已经发生了深刻的变化,这并不简单的意味着出现了大量功能丰富的基础库,使得我们可以更加方便的编写业务代码,更重要的是我们看待前端技术的观念发生了重大转变,明确意识到了 ...
- jquery中的编程范式,即jquery的牛逼之处
转自:http://www.iteye.com/topic/1119283 对jquery理解比较深,积累一下,整理了一下格式,就当练习一下 markdown 语法. 本文将结合jQuery源码的实现 ...
- 详解jQuery中 .bind() vs .live() vs .delegate() vs .on() 的区别
转载自:http://zhuzhichao.com/2013/12/differences-between-jquery-bind-vs-live/ 我见过很多开发者很困惑关于jQuery中的.bin ...
- jQuery中attr和prop方法的区别
jQuery中attr和prop方法的区别。 http://my.oschina.net/bosscheng/blog/125833 http://www.javascript100.com/?p=8 ...
- 大白话讲解Promise(三)搞懂jquery中的Promise
前两篇我们讲了ES6中的Promise以及Promise/A+规范,在Promise的知识体系中,jquery当然是必不可少的一环,所以本篇就来讲讲jquery中的Promise,也就是我们所知道的D ...
- jQuery入门(4)jQuery中的Ajax应用
jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...
随机推荐
- PAT 1117 Eddington Number
British astronomer Eddington liked to ride a bike. It is said that in order to show off his skill, h ...
- BZOJ 2754 [SCOI2012]喵星球上的点名 (AC自动机、树状数组)
吐槽: 为啥很多人用AC自动机暴力跳都过了?复杂度真的对么? 做法一: AC自动机+树状数组 姓名的问题,中间加个特殊字符连起来即可. 肯定是对点名串建AC自动机(map存儿子),然后第一问就相当于问 ...
- 【Codeforces 459D】Pashmak and Parmida's problem
[链接] 我是链接,点我呀:) [题意] 定义两个函数 f和g f(i)表示a[1..i]中等于a[i]的数字的个数 g(i)表示a[i..n]中等于a[i]的数字的个数 让你求出来(i,j) 这里i ...
- 【codeforces 768D】Jon and Orbs
[题目链接]:http://codeforces.com/contest/768/problem/D [题意] 你有一个水晶; 它每天都会产生一个球??(球有k种) 然后每种球产生的可能性是相同的-& ...
- [HEOI 2016] sort
[HEOI 2016] sort 解题报告 码线段树快调废我了= = 其实这题貌似暴力分很足,直接$STL$的$SORT$就能$80$ 正解: 我们可以二分答案来做这道题 假设我们二分的答案为$a$, ...
- poj 2031
#include<stdio.h> #include<math.h> #include<stdlib.h> #define N 200 double co(doub ...
- [网络流24题#9] [cogs734] 方格取数 [网络流,最大流最小割]
将网格分为两部分,方法是黑白染色,即判断(i+j)&1即可,分开后从白色格子向黑色格子连边,每个点需要四条(边界点可能更少),也就是每个格子周围的四个方向.之后将源点和汇点分别于黑白格子连边, ...
- POJ 3061 Subsequence 尺取
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14698 Accepted: 6205 Desc ...
- CODEVS——T 2969 角谷猜想
http://codevs.cn/problem/2969/ 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Descri ...
- DSP、Media、AdExchanger之间的关系及交互流程
广告商,如以下的樱花日语,淘宝卖家.其须要推广自己的产品. Zampdsp(晶赞) 是DSP平台.其与非常多广告商合作,广告商在平台上公布广告创意,并托付平台代为投放. tanx.com 是adExc ...