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编码文本字符串。