jQuery选择器_Dom操作_样式_事件处理

1: 库和框架的区别?

库:库是更多是一个封装好的特定的集合,提供给开发者使用,而且是特定于某一方面的集合(方法和函数),库没有控制权,控制权在使用者手中,在库中查询需要的功能在自己的应用中使用,我们可以从封装的角度理解库;

框架:框架顾名思义就是一套架构,会基于自身的特点向用户提供一套相当于叫完整的解决方案,而且控制权的在框架本身,使用者要找框架所规定的某种规范进行开发。

2: jquery 能做什么?
  • 方便快捷获取DOM元素
  • 动态修改页面样式
  • 动态改变DOM内容
  • 响应用户的交互操作
  • 为页面添加动态效果
  • 统一Ajax操作
  • 简化常见的JavaScript任务
3: jquery 对象和 DOM 原生对象有什么区别?如何转化?

什么是jQuery对象:

通过jQuery包装DOM对象后产生的对象即jQuery对象。
jQuery对象是jQuery独有的,可以使用jQuery里的方法。

和DOM 原生对象的区别:

1、jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类型,两者不等价;

2、jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法. 乱使用会报错。

$("#id").html();
document.getElementById("id").innerHTML;
意思是指:获取ID为id的元素内的html代码。这两段代码结果相同,但中间的取值过程不同。
即:$("#id").innerHTML、document.getElementById("id").html()之类的写法都是错误的。

相互转换:

  • jQuery对象转成DOM对象

jquery提供了两种方法将一个jquery对象转换成一个dom对象,即[index]和get(index)
怎么是用下标呢,没错,jquery对象就是一个数组对象.

示例代码:
var $cr=$("#cr"); //jquery对象
var cr = $cr[0];  或者 var cr=$cr.get(0);//dom对象
  • dom对象转换成jquery对象

对于一个dom对象,只需要用$()把dom对象包装起来,就可以获得一个jquery对象了,方法为$(dom对象);

代码如下:
var cr=document.getElementById("cr"); //dom对象
var $cr = $(cr); //转换成jquery对象
转换后可以任意使用jquery中的方法了.
4:jquery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?

jQuery 提供了四种事件监听的方式,分别为bind、live、delegate、on

bind()

bind()函数为每个匹配元素的一个或多个事件绑定事件处理函数。

语法

$(selector).bind(event,data,function)

event:必需。添加到元素的一个或多个事件,如 click,dblclick等;

单事件处理:例如 $(selector).bind("click",data,function);
多事件处理:
1.利用空格分隔多事件,例如 $(selector).bind("click dbclick mouseout",data,function);
2.利用大括号灵活定义多事件,例如$(selector).bind({event1:function, event2:function, ...})

data:可选;需要传递的参数;

function:必需;当绑定事件发生时,需要执行的函数;

bind()的事件绑定是只对当前页面选中的元素有效。
如果希望绑定事件对未来新添加的元素也生效,使用on()、delegate()、live()等事件函数(优先使用靠前的事件函数)

要删除通过bind()绑定的事件,使用unbind()函数。

语法

$(selector).unbind(event,function)

event:可选。规定删除元素的一个或多个事件,由空格分隔多个事件值。
如果只规定了该参数,则会删除绑定到指定事件的所有函数。
function:可选。规定从元素的指定事件取消绑定的函数名。


live()

live() 向当前或未来的匹配元素添加一个或多个事件处理器;

语法

同bind()

live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bind方法的这个缺陷,它可以对后生成的元素也可以绑定相应的事件。

live方法之所以能对后生成的元素也绑定相应的事件的原因归结在“事件委托”上面,所谓“事件委托”就是指绑定在祖先元素上的事件可以在其后代元素上进行使用。live方法的处理机制就是把事件绑定在DOM树的根节点上,而不是直接绑定在某个元素上。

要删除通过live()绑定的事件,使用die()函数。

语法

$(selector).die(event,function)

event:必需。规定要移除的一个或多个事件处理程序,由空格分隔多个事件值,必须是有效的事件。
function:可选。规定要移除的特定函数。


delegate()

delegate() 为指定的元素(被选元素的子元素)添加一个或多个事件处理程序
语法
$(selector).delegate(childSelector,event,data,function)

childSelector: 必需项;需要添加事件处理程序的元素,一般为selector的子元素;
event:必需项;添加到元素的一个或多个事件,例如 click,dblclick等;
data:可选;需要传递的参数;
function:必需;当绑定事件发生时,需要执行的函数;

要删除通过delegate()绑定的事件,使用undelegate()函数。


on()

on()函数用于为指定元素的一个或多个事件绑定事件处理函数。还可以额外传递给事件处理函数一些所需的数据。

语法
.on( events [,selector ] [,data ], handler(eventObject) )

events:一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如"click", "keydown.myPlugin", 或者 ".myPlugin"
selector:一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素。如果选择器是 null 或者忽略了该选择器,那么被选中的元素总是能触发事件
data:当一个事件被触发时,要传递给事件处理函数的event.data
handler(eventObject):事件被触发时,执行的函数。若该函数只是要执行return false的话,那么该参数位置可以直接简写成 false

从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、 live()等事件函数。

要删除通过on()绑定的事件,使用off()函数。

.off( events [, selector ] [, handler ] )

各种方法适用的版本:

bind()------------------版本号小于3.0
live()--------------------版本号小于1.7
delegate()-------------版本号小于1.7
on()---------------------版本号大于1.7

推荐使用.on()方法绑定
1.可以绑定动态添加到页面元素的事件
2.提升效率

5:jquery 如何展示/隐藏元素?

通过 jQuery,可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素:

$("#hide").click(function(){
  $("p").hide();
});

$("#show").click(function(){
  $("p").show();
});
//语法
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
/*可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是隐藏或显示完成后所执行的函数名称。

还可以使用 toggle() 方法来切换 hide() 和 show() 方法。
$(selector).toggle(speed,callback);
*/
6:jquery 动画如何使用?

jQuery.animate()函数用于执行一个基于css属性的自定义动画。

语法:

$(selector).animate({params},speed,callback);

params:必需。Object类型。一个或多个css属性的键值对所构成的Object对象。
** speed :**可选。规定效果的时长。
callback: 可选。动画完成后所执行的函数名称。

实例:

$("button").click(function(){
  $("div").animate({left:'250px'});//把 <div> 元素移动到左边,直到 left 属性等于 250 像素
}); 
/*默认地,所有 HTML 元素都有一个静态位置,且无法移动。
如需对位置进行操作,要记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute!*/

//操作多个属性
$("button").click(function(){
  $("div").animate({
    left:'250px',
    opacity:'0.5',
    height:'150px',
    width:'150px'
  });
}); 

//使用相对值
$("button").click(function(){
  $("div").animate({
    left:'250px',
    height:'+=150px',
    width:'+=150px'
  });
});

//使用队列功能
$("button").click(function(){
  var div=$("div");
  div.animate({height:'300px',opacity:'0.4'},"slow");
  div.animate({width:'300px',opacity:'0.8'},"slow");
  div.animate({height:'100px',opacity:'0.4'},"slow");
  div.animate({width:'100px',opacity:'0.8'},"slow");
});
7,如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?

html() 方法返回或设置被选元素的内容 (inner HTML)。

类似于JavaScript中的innerHTML属性,可以用来读取或者设置某个元素中的HTML内容。

语法

$(selector).html()

如果该方法未设置参数,则返回被选元素第一个匹配元素的当前内容。
当使用该方法设置一个值时,它会覆盖所有匹配元素的内容。

text() 方法设置或返回被选元素的文本内容。

类似于JavaScript中的innerText属性,可以用来读取或者没置某个元素中的文本内容。

语法

$(selector).text()

如果该方法未设置参数,它会返回所有匹配元素的组合的文本内容(会删除 HTML 标记)。
当使用该方法设置一个值时,它会覆盖被选元素的所有内容。

8.如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?

jQuery提供了val()方法,使用它我们可以快速地获取和设置表单的文本框、单选按钮、以及单选按钮的值。
使用val()不带参数,表示获取元素的值
使用val()给定参数,则表示把值赋给元素
语法:

$(selector).val(value)//value可选。规定被选元素的新内容。

实例:

//获取值
$("button").click(function(){
    alert($("input#mytext").val());
  });
//设置值
$("button").click(function(){
    $("input:text").val("Bill Gates");
  });

jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写
语法:

$(selector).attr(attribute,value)

参数value用于设置属性的值。可选,缺失则用于获取元素属性
实例:

//返回图像的宽度
$("button").click(function(){
    alert("Image width " + $("img").attr("width"));
  });
//设置图像的 width 属性
$("button").click(function(){
    $("img").attr("width","180");
  });
9: 使用 jquery实现如下效果

题目9
题目10
题目11
代码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容