JQuery学习笔记
JQuery选择器
选择器实例选取
*$("*")所有元素
#id$("#lastname")id=lastname的元素
.class$(".intro")所有class="intro"的元素
element$("p")所有<p>元素
.class.class$(".intro.demo")所有class=intro且class=demo的元素
:first$("p:first")第一个<p>元素
:last$("p:last")最后一个<p>元素
:even$("tr:even")所有偶数<tr>元素
:odd$("tr:odd")所有奇数<tr>元素
:eq(index)$("ulli:eq(3)")列表中的第四个元素(index从0开始)
:gt(no)$("ulli:gt(3)")列出index大于3的元素
:lt(no)$("ulli:lt(3)")列出index小于3的元素
:not(selector)$("input:not(:empty)")所有不为空的input元素
:header$(":header")所有标题元素<h1><h2>...
:animated所有动画元素
:contains(text)$(":contains('W3School')")包含文本的所有元素
:empty$(":empty")无子(元素)节点的所有元素
:hidden$("p:hidden")所有隐藏的<p>元素
:visible$("table:visible")所有可见的表格
s1,s2,s3$("th,td,.intro")所有带有匹配选择的元素
[attribute]$("[href]")所有带有href属性的元素
[attribute=value]$("[href='#']")所有href属性的值等于"#"的元素
[attribute!=value]$("[href!='#']")所有href属性的值不等于"#"的元素
[attribute$=value]$("[href$='.jpg']")所有href属性的值包含".jpg"的元素
:input$(":input")所有<input>元素
:text$(":text")所有type="text"的<input>元素
:password$(":password")所有type="password"的<input>元素
:radio$(":radio")所有type="radio"的<input>元素
:checkbox$(":checkbox")所有type="checkbox"的<input>元素
:submit$(":submit")所有type="submit"的<input>元素
:reset$(":reset")所有type="reset"的<input>元素
:button$(":button")所有type="button"的<input>元素
:image$(":image")所有type="image"的<input>元素
:file$(":file")所有type="file"的<input>元素
:enabled$(":enabled")所有激活的input元素
:disabled$(":disabled")所有禁用的input元素
:selected$(":selected")所有被选取的input元素
:checked$(":checked")所有被选中的input元素
jquery的$().each,$.each的区别
在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法。两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点。
$().each,对于这个方法,在dom处理上面用的较多。如果页面有多个input标签类型为checkbox,对于这时用$().each来处理多个checkbook,例如:
$(“input[name=’ch’]”).each(function(i){ if($(this).attr(‘checked’)==true) { //一些操作代码 }
回调函数是可以传递参数,i就为遍历的索引。
对于遍历一个数组,用$.each()来处理,简直爽到了极点。例如:
$.each([{“name”:”limeng”,”email”:”xfjylimeng”},{“name”:”hehe”,”email”:”xfjylimeng”},function(i,n) { alert(“索引:”+i,”对应值为:”+n.name); });
参数i为遍历索引值,n为当前的遍历对象.
each处理json数据,这个each就有更厉害了,能循环每一个属性
var obj = { one:1, two:2, three:3}; each(obj, function(key, val) { alert(key); alert(val); });
这里alert(key)将输出onetwothree
alert(val)将输出one,1,two,2,three,3
jQueryCSS操作-css()方法
css()方法返回或设置匹配的元素的一个或多个样式属性。
设置<p>元素的颜色:
$(".btn1").click(function(){ $("p").css("color","red"); });
返回第一个匹配元素的样式属性。
$(selector).css(name)
name参数可以包含任何字符串类型的CSS属性名。比如"color":
取得第一个段落的color样式属性的值:
$("p").css("color");
这是一种在所有匹配的元素上设置大量样式属性的最佳方式。
$("p").css({ "color":"white", "background-color":"#98bf21", "font-family":"Arial", "font-size":"20px", "padding":"5px" });
事件操作
触发实例:
$("button#demo").click()
绑定实例:
$("button#demo").click(function(){$("img").hide()})
属性操作
addClass()方法
$("button").click(function(){ $("p:first").addClass("intro"); });
提示:如需添加多个类,请使用空格分隔类名。
$(selector).addClass(function(index,oldclass))
参数描述
function(index,oldclass)必需。规定返回一个或多个class的函数。
该函数可接收并使用选取器的index值和当前class。
attr()方法
attr()方法设置或返回被选元素的属性值。
JQueryAjax
$.ajax({ type : "POST", //提交方式 url : "${pageContext.request.contextPath}/org/doDelete.action",//路径 data : { "org.id" : "${org.id}" },//数据,这里使用的是Json格式进行传输 success : function(result) {//返回数据根据结果进行相应的处理 if ( result.success ) { $("#tipMsg").text("删除数据成功"); tree.deleteItem("${org.id}", true); } else { $("#tipMsg").text("删除数据失败"); } } });
ajaxSubmit
$(document).ready(function(){ $('#Form1').bind('submit', function(){ var account= $('#account]').val(), var password= $('#password').val(); $(this).ajaxSubmit({ type: 'post', // 提交方式 get/post url: 'your url', // 需要提交的 url dataType : "json", 数据类型 data: { 'account': account, 'password': password }, success: function(data) { // data 保存提交后返回的数据,一般为 json 数据 // 此处可对 data 作相关处理 alert('提交成功!'); } //$(this).resetForm(); // 提交后重置表单 }); return false; // 阻止表单自动提交事件 }); });
JQuery和DOM对象转换
先是DOM对象转换为jQuery对象:
//获取DOM对象 var username=document.getElementById("username"); alert(username.value); //转换为jquery对象 转换后就可以使用jQuery中的方法了 var $username=$(username); alert("^^^"+$username.val()); </script>
jQuery对象转换成DOM对象
l两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);
//获取jQuery对象 var $username=$("#username"); alert($username.val()); //转换成DOM对象 //(1) jQuery对象是一个数组对象,可以通过[index]的方法,来得到相应的DOM对象 var username=$username[0]; alert(username.value); //jQuery本身提供,通过.get(index)方法,得到相应的DOM对象 //转化为DOM对象 var username1 = $username.get(0); alert(username1.value);
body中的onload()函数和jQuery中的document.ready()有什么区别?
onload()和document.ready()的区别有以下两点:
1、我们可以在页面中使用多个document.ready(),但只能使用一次onload()。
2、document.ready()函数在页面DOM元素加载完以后就会被调用,而onload()函数则要在所有的关联资源(包括图像、音频)加载完毕后才会调用。
jQuery中的Delegate()函数有什么作用?
delegate()会在以下两个情况下使用到:
1、如果你有一个父元素,需要给其下的子元素添加事件,这时你可以使用delegate()了,代码如下:
$("ul").delegate("li", "click", function(){ $(this).hide(); });
2、当元素在当前页面中不可用时,可以使用delegate()
bind()
简要描述
bind()向匹配元素添加一个或多个事件处理器。
使用方式
$(selector).bind(event,data,function)
event:必需项;添加到元素的一个或多个事件,例如click,dblclick等;
单事件处理:例如$(selector).bind("click",data,function);
多事件处理:1.利用空格分隔多事件,例如$(selector).bind("clickdbclickmouseout",data,function);
2.利用大括号灵活定义多事件,例如$(selector).bind({event1:function,event2:function,...})
3.空格相隔方式:绑定较为死板,不能给事件单独绑定函数,适合处理多个事件调用同一函数情况;
大括号替代方式:绑定较为灵活,可以给事件单独绑定函数;
data:可选;需要传递的参数;
function:必需;当绑定事件发生时,需要执行的函数;
适用所有版本,但是根据官网解释,自从jquery1.7版本以后bind()函数推荐用on()来代替。
on()
on()为指定的元素,添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用on()方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
使用方式
$(selector).on(event,childselector,data,function)
event:必需项;添加到元素的一个或多个事件,例如click,dblclick等;
单事件处理:例如$(selector).on("click",childselector,data,function);
多事件处理:1.利用空格分隔多事件,例如$(selector).on("clickdbclickmouseout",childseletor,data,function);
2.利用大括号灵活定义多事件,例如$(selector).on({event1:function,event2:function,...},childselector);
3.空格相隔方式:绑定较为死板,不能给事件单独绑定函数,适合处理多个事件调用同一函数情况;
大括号替代方式:绑定较为灵活,可以给事件单独绑定函数;
childSelector:可选;需要添加事件处理程序的元素,一般为selector的子元素;
data:可选;需要传递的参数;
function:必需;当绑定事件发生时,需要执行的函数;
ajax-serialize()方法
serialize()方法通过序列化表单值,创建URL编码文本字符串。