jQuery学习笔记(二)
jQuery 操作DOM元素
1.attr()
方法的作用是设置或者返回元素的属性,其中attr(属性名)格式是获取元素属性名的值,
attr(属性名,属性值)格式则是设置元素属性名的值
2.使用html()
和text()
方法操作元素的内容,当两个方法的参数为空时,表示获取该元素的内容,
而如果方法中包含参数,则表示将参数值设置为元素内容.html()
方法可以获取元素的HTML内容text()
方法只是获取元素中的文本内容
3.addClass()
和css()
方法可以方便地操作元素中的样式,
前者括号中的参数为增加元素的样式名称
后者直接将样式的属性内容写在括号中
4.使用removeAttr(name)
和removeClass(class)
分别可以实现移除元素的属性和样式的功能,
前者方法中参数表示移除属性名,
后者方法中参数则表示移除的样式名
5.append(content)
方法的功能是向指定的元素中追加内容,被追加的content参数,可以是字符、HTML元素标记,
还可以是一个返回字符串内容的函数
6.appendTo()
方法也可以向指定的元素内插入内容,它的使用格式是:$(content).appendTo(selector)
参数content表示需要插入的内容,参数selector表示被选的元素,即把content内容插入selector元素内,默认是在尾部
7.使用before()
和after()
方法可以在元素的前后插入内容,它们分别表示在整个元素的前面和后面插入指定的元素或内容,调用格式分别为:$(selector).before(content)
和$(selector).after(content)
8.clone()
方法可以生成一个被选元素的副本,即复制了一个被选元素,包含它的节点、文本和属性,它的调用格式为:$(selector).clone()
9.replaceWith()
和replaceAll()
方法都可以用于替换元素或元素中的内容$(selector).replaceWith(content)
和$(content).replaceAll(selector)
10.wrap()
和wrapInner()
方法都可以进行元素的包裹,
但前者用于包裹元素本身,后者则用于包裹元素中的内容$(selector).wrap(wrapper)
和$(selector).wrapInner(wrapper)
11.each()
方法可以遍历指定的元素集合,在遍历时,通过回调函数返回遍历元素的序列号,它的调用格式为:$(selector).each(function(index))
参数function为遍历时的回调函数,index为遍历元素的序列号,它从0开始
12.remove()
方法删除所选元素本身和子元素,该方法可以通过添加过滤参数指定需要删除的某些元素,
而empty()
方法则只删除所选元素的子元素。
jQuery 事件与应用
1.ready()
事件类似于onLoad()事件,但前者只要页面的DOM结构加载后便触发,而后者必须在页面全部元素加载成功才触发,ready()可以写多个,按顺序执行。此外,下列写法是相等的:$(document).ready(function(){})
等价于$(function(){})
;
2.bind()
方法绑定元素的事件非常方便,绑定前,需要知道被绑定的元素名,绑定的事件名称,事件中执行的函数内容就可以,它的绑定格式如下:$(selector).bind(event,[data] function)
参数event为事件名称,多个事件名称用空格隔开,function为事件执行的函数。sg:
$(function () {
$("#btntest").bind('click mouseout', function () {
$(this).attr("disabled", "true");
})
});
3.hover()
方法的功能是当鼠标移到所选元素上时,执行方法中的第一个函数,鼠标移出时,执行方法中的第二个函数,实现事件的切实效果,调用格式如下:$(selector).hover(over,out);
sg:
$(function () {
$("div").hover(
function () {
$(this).addClass("orange");
},
function () {
$(this).removeClass("orange")
})
});
4.toggle()
方法可以在元素的click事件中绑定两个或两个以上的函数,同时,它还可以实现元素的隐藏与显示的切换,绑定多个函数的调用格式如下:$(selector).toggle(fun1(),fun2(),funN(),...)
$(function () {
$("#btntest").bind("click",
function(){
$("div").toggle();
})
});
toggle()方法支持目前主流稳定的jQuery版本1.8.2,在1.9.0之后的版本是不支持的。
5.unbind()
方法可以移除元素已绑定的事件,它的调用格式如下:$(selector).unbind(event,fun)
6.one()
方法可以绑定元素任何有效的事件,但这种方法绑定的事件只会触发一次,它的调用格式如下:$(selector).one(event,[data],fun)
参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。
7.trigger()
方法可以直接手动触发元素指定的事件,这些事件可以是元素自带事件,也可以是自定义的事件,总之,该事件必须能执行,它的调用格式为:$(selector).trigger(event)
sg:
$(function () {
$("div").bind("change-color", function () {
$(this).addClass("color");
});
$("div").trigger("change-color");
});
8.focus
事件在元素获取焦点时触发,如点击文本框时,触发该事件;
而blur
事件则在元素丢失焦点时触发,如点击除文本框的任何元素,都会触发该事件
为元素
$(function () {
$("input").bind("focus", function () {
$("div").html("请输入您的姓名!");
})
$("input").bind("blur", function () {
if ($(this).val().length == 0)
$("div").html("你的名称不能为空!");
})
});
9.当一个元素的值发生变化时,将会触发change
事件,绑定这个事件
10.live()
方法与可以绑定元素的可执行事件,除此相同功能之外,live()方法还可以绑定动态元素,即使用代码添加的元素事件,格式如下:$(selector).live(event,[data],fun)
不建议使用,sg:
<script>
$(function(){
$("#btntest").live('click', function(event) {
$(this).attr("disabled",true);
})
$("body").append("<input id='btntest' type='button' value='click here'/>");
});
</script>