1. 排除头部给行添加样式
例如:
<table>
<thead>
<tr><th>姓名</th></tr>
</thead>
<tbody>
<tr><td>梁继龙</td><td>男</td><td>广东阳春</td></tr>
</tbody>
</table>
//实现
$(function(){
$('tbody>tr:odd').addClass('odd'); //给tbody中的奇数行添加样式
$('tbody>tr:even').addClass('even'); //给tbody中的偶数行添加样式
});
2.普通的隔行变色
CSS代码
.even{background:#FFFFFFF} //偶数行样式
.odd{background:#FFFFFFF} //奇数行样式
实现
$(function(){
$('tr:odd').addClass("odd"); //给偶数行添加样式
$('tr:even').addClass("even"); //给奇数行添加样式
})
/*注意:$('tr:odd')和$('tr:even')选择器中索引是从0开始的,因此第一行是偶数
*/
3. 单选框控制表格行高亮
例如:给单击的当前行添加高亮,然后将它的兄弟行的高亮样式去掉,最后将当前行里的单选设置为选中
$('tbody>tr:').click(function(){
$(this).addClass('selected').siblings().removeClass('selected').end()
.find(':radio').attr('checked',true);
});
4. 处理默认已经有单选框被选中
$("table:radio:checked").parent().parent().addClass('selected');
//或者
$('table:radio:checked').parents('tr').addClass('selected');
5. 通过has选择器进一步简化,表示含有选中的单选框的<tr>行将被高度显示
$('tbody>tr:has(":checked")').addClsss('selected');
6.复选框控制表格行高亮
注意:复选框与单选框不同,它并没有限制被选择的个数
例如:如果已经高亮了,则移除它并去掉当前复选框的选中的状态,如果没有,则添加样式并将当前行的复选框选中。
$('tbody>tr').click(function(){
if($(this).hasClass('selected')){ //判断是否有selected高度样式
$(this).removeClass('selected').find(':checkbox').attr('checked',false);
}else{
$(this).addClass('selected').find(':checked').attr('checked',true);
}
})
//或者用三元运算实现
$('tbody>tr').click(function(){
//判断当前是否选中
var hasSelected=$(this).hasClass('selected');
//如果选中,则移出selected类,否则就加上selected类
$(this)[hasSelected?"removeClass":"addClass"]('selected')
//查找内部的checkbox,设置对应的属性
.find(':checked').attr("checked",!hasSelected);
});
------------------------------------------------------------------------------------------
表格展开关闭实例
$(function(){
$('tr.parent').click(function(){
$(this).toggleClass('selected')
.siblings('.child'+this.id)+toggle(); //隐藏/显示的子行 (.chlid_+this.id)表 示.child class=".child"+某个值即:例如:.child1 或.child2
})
});
表格的内容筛选
例如:高度显示王五
$(function(){
$("table tbody tr").hide()fileter(":contains(王五)").show();
});
////----------------表单对象属性过虑示例--------------///
1.改变表单内可用<input>元素的值
$(#form1 input:enabled).val("这里变化了");
2.改变表单内不可用<input>元素的值
$(#form1 input:disabled).val("这里变化了");
3.获得多选框选中的个数
$("input:checked").length
4.获得下拉框选中的内容
$("select:selected").text();
5.选中所有<input>、<textarea>,<select>和<button>元素
$(":input")
6.选中所有的上传域
$(":file")
7.总结:其他属性的所有选中都是$(":+属性类型")
例如: $("image") ....
8.选择第一个元素
:first
$('div:first')选取所有<div>元素中第一个<div>元素
9.选取最后一个元素
:last
$("div:last")选取所有<div>元素中最后一个<div>元素
10.去除所有与给定选择器匹配的元素
:not(selector)
$('inptu:not(.myClass)')选取clas不是myClass的<input>元素
11.选取索引是偶数的所有元素,索引从0开始
:even
$("input:even")选取索引是偶数的<input>元素
12.选取索引是奇数的所有元素,索引从0开始
:odd
$("input:odd")选取索引是奇数的<input>元素
13.选取索引是等于index的元素(索引从0开始)
:eq(index)
$("input:eq(1)")选取索等于1的<input>元素
14.选取索引是大于index的元素(索引从0开始)
:gt(index)
$("input:gt(1)")选取索大于1的<input>元素 //注意:大于1,而不包括1
15.选取索引是小于index的元素(索引从0开始)
:lt(index)
$("input:lt(1)")选取索小于1的<input>元素 //注意:小于1,而不包括1
16.选取所有的标题元素,例如h1 h2....
:header
$(":header")选取网页中所有的<h1>....
17.选取当前正在执行动画的所有元素
:animated
$('div:animated')选取当前正在执行动画的<div>元素
//-----------------------事件绑定方法和方法的使用-----------------------
bind()方法
bind(type[,data],fn);
合成事件
1.hover()方法
语法: hover(enter,leave);
hover()方法
准确来说代替bind("mouseenter") and bind("mouseleave")而不是代替bind("mouseover"); and bind("mouseout")
2. toggle()方法
语法 toggle(fn1,fn2,fnN); fn1 到fnN依次被触发直到完毕
3 .event.stopPropagation() //停止事件冒泡
4.event.preventDefault() //阻止默认行为
5. event,target()方法
作用于是获取触发事件的元素
alert(event.target.href) //获取触发事件的<a>的href属性值
6. event.relateTarget()方法
mouseover和mouseout所发生的元素可以通过event.target()方法来访问
event.relateTarget()方法在mouseover中相当于IE浏览器的event.fromElement()方法
在mouseout中相当于IE浏览器的event.toElement()方法
7.event.pageX()方法和event.pageY()方法
作用是获取到光标相对于页面的x坐标和y坐标
注意:如果没有使用jquery时,IE浏览器是用event.x()/event.y()方法,而Firefox浏览器中用.event.pageX()/event.pageY()方法
8.event.which()方法
作用是在鼠标事件中获取到鼠标的左,右,中键.在键盘事件获取键盘的按键
$( function(){
$("body").mousedown(function(e){
alert(e.which); //1=左键 2=中 ,3=右
})
})
9.event.metaKey()方法
针对不同浏览器对键盘中的<ctrl>按键解释不同,在jquery并规定event.metaKey()方法为键盘事件中获取<ctrl>按键
10.event.originalEvent()方法
作用指向原始的事件对象
11.fadeIn()和fadeOut()方法
.fadeIn()和fadeOut()只是改变元素的不透明度
fadeOut方法会指定的一段时间降低元素的不透明度,直到元素完全消失,而fadeOut()刚相反
12.slideUp()和slideDown()方法
只是改变元素的高度,如果一个元素的display属性值为none当调用slideDown()时,这个元素将会由上至下延伸显示,slideUp正好相反,从下到上缩短隐藏.
1.offset()方法
它的作用是获取元素在当前视窗的相对偏移
例如:
var $offset=$('p').offset(); //获取<p>元素的offset()
var $left=$offset.left; //获取左边偏移
2.position()方法
作用是获取相对于最近的一个position样式属性为relative或absolute的祖父节点的相对偏移,与offset()一样
它返回的对象也包括两个属性,即top和left
例如:
var $p=$('p').position() ; //获取<p>元素的position
var $left=$p.left/top; //获取左边/头的偏移
3.scrollTop()和scrollLeft()方法
它们的作用分别是获取元素的滚动条距顶端的距离和距左侧的距离
var $p=$('p');
var $sT=$p.scrollTop(); //获取元素的滚动条距顶端的距离
var $sL=$p.scrollLeft(); //获取元素的滚动条距左侧的距离
//或者指定参数
$('textarea').scrollTop(300 ); //元素的垂直滚动条到指定的位置
3-1-1
1.使用HTML-DOM来获取表单对象的方法
document.forms //html-dom提供一个forms对象
2.使用HTML-DOM来获取元素的SRC属性的方法
element.src
3-2-1
找节点
var $li = $("ul li:eq(1)"); //获取<ul>里第二个<li>节点
3-2-2
查找属性节点
** attr() 方法可以获取各种属性的值,并且方法可以放参数
eg:
var $p=$("p"); //获取<p>节点
var p_txt=$p.attr("title"); //获取<p>元素节点属性title
3-2-3
创建节点
例如:创建<li>
</li>子节点到<ul>
下方
var $li=$("<li></li>"); //创建了一个子节点
$("ul").append("$li"); //把子节点添加到<ul>下方
****
注意:
1.动态创建的新元素节点不会被自动添加到文档中.
2.当创建单个元素时,要注意闭合标签和使用标准的XHTML格式.例如:创建 一个<p>元素,可以用$("<p/">)或者$("<p></p>"),但是不要使用$("<p>")或者大写$("P/");
插入节点的方法
1 append() 向每个匹配的元素内部追加内容
eg:
html代码:
<p>我想说:</p>
jQuery代码
$("p").append("<b>你好</b>")
结果:
<p>我想说:<b>你好</b><p/>
2 appendTo() 将所有匹配的元素追加到指定的元素中实际上,颠倒了常规$(A).append(B)的操作即不是将B追加到A中,而是将A追加到B中
eg:
html代码:
<p>我想说:</p>
jQuery代码
$("<b>你好</b>").append("p")
结果:
<p>我想说:<b>你好</b><p/>
3.prepend() 向每个匹配的元素内部前置内容
eg:
html代码:
<p>我想说:</p>
jQuery代码
$("p").prepend("<b>你好</b>");
结果:
<p><b>你好</b>我想说:<p/>
4 prependTo() 将所有匹配的元素前置到指定的元素中实际上,颠倒了常规$(A).append(B)的操作即不是将B前置到A中,而是将A前置到B中
eg:
html代码:
<p>我想说:</p>
jQuery代码
$("<b>你好</b>").append("p")
结果:
<p>我想说:<b>你好</b></p>
5.after()在每个匹配的元素之后插入内容
html代码:
<p>我想说:</p>
jQuery代码
$("p").after("<b>你好</b>");
结果:
<p>我想说:</p><b>你好</b>
------------------------------------------复选框、下拉框-------------
//全选
$("#checkedAll").click(function(){ //checkedAll被点击的ID
$('[name=items]:checkbox').attr('checked',true) //items被选name
})
//全不选
$("#checkedNo").click(function(){ //checkedNo被点击的ID
$('[name=items]:checkbox').attr('checked',false) //items被选name
})
//反选
$("#checkedReturn").click(function(){ //checkedReturn被点击的ID
$('[name=items]:checkbox').each(function(){ //each是遍历循环
$(this).attr("checked",!$(this).attr("checked"));
})
})
或者
$("checkedReturn").click(function(){
$('[name=items]:checkbox').each(function(){
this.checked=!this.checked;
})
});
//弹出被选的提交
$("#send").click(function(){
var str="你 选中的是:\r\n";
$('[name=items]:checkbox:checked').each(function(){
str +=$(this).val()+"\r\n";
});
alert(str);
});
$('[name=items]:checkbox').click(function(){
var $st=$('[name=items]:checkbox');
$('#che').attr('checked'),$st.length==$st.filter(':checked').length
});
-----------------------------------------------------------------
假设将左边的选项添加到右边
$('#add').click(function(){ //dblclick --双击事件
var $options=$('select1 option:selected'); //获取选中的选项
// var $remove=$options.remove(); //删除下拉框列表中选中的选项
$remove.appendTo("select2");; //追加给对方
});
------------------------------------------------------------显示和隐藏效果-----------
1.show()和hide()方法让元素动起来
例如:指定一个速度关键字slow /normal /fast
$("element").show("slow");
2.指定时间使元素在时间内显示/;隐藏
$("element").show(1000);
$("element").hide(1000);
3.next的使用
$(this).next("div.content").hide(500);
4.自定义动画animate()
语法:animate(params,speed,callback);
说明: parms:一个包含样式属性及值的映射,例如:{property1:"value1", ..........}
speed:速度参数,可选
callback:在动画完成时执行的函数,可选
5.累加和累减动画
"+ =" 或 "- ="表示在当前位置累加/减
$(function(){
$("#pane1").click(function(){
$(this).animate({left: "+=500px"},300); //在当前位置累加500px
});
});
6.多重动画
A. 同时执行多个动画
eg: 在元素向右滑动的同时,放大的高度.
$(function(){
$("#myImag").click(function(){
$(this).animate({left:"500px",height:"200px"},3000);
//或者
//$(this).animate({left:"500px"},3000).animate({height:"200px"},3000);
})
})
7.综合动画
单击<div>向右移动并增大高度,将它的不透明从50%变换到100%,然后让它从上到下移动,同时它的宽度变大
当完成这些效果,让它以谈出的方式隐藏
$(function(){
$("#pane1").css("opacity","0.5"); //(opacity)设置不透明度
$("#pane1").click(function()){
$(this).animate({left:"400px",height:"200px",opacity:"1"},3000)
.animate({top:"200px",with:"200px"}, 3000).fadeOut("slow");
}
})
8.停止动画和判断是否处于动画状态
语法:stop([clearQueue][,gotoEnd]);
clearQueue代表是否要清空未执行完的动画队列, gotoEnd代表是否直接将正在执行的动画跳转到未状态
-----------层次选择器----------
选择器
1.$('ancestor descendant')
选取ancestor 元素里的所有descendant(后代)元素
$('div span')选取<div>里的所有的<span>元素
2.$('parent>child')
选取parent元素下的child(子元素)与$('ancestor descendant')
有区别,$('ancestor descendant')选择后代元素
3.$('prev+next')
选择紧接在prev元素后的next元素
$('.one+div')选取class为one的下一个<div>元素
4.$('prev~siblings')
选取prev元素之后的所有siblings
$('#two~div')选取ID为two的元素后面的所有<div>兄弟元素
-------------------------------------------------------------选择器的认识-----------------------------------
//注意:
1.3.1版本彻底放弃1.1.0版本遗留下的@符号,如果使用1.3.1以上的版本
那么不能在属性前添加@符号
Eg:
$('div[@title="test"]') //这是错误的
$('div[title="test"]') //这是正确的
1.带空格的选择器与不带选择器的区别
eg:
var $a=$('.test :hidden');
var $b=$('.test:hidden');
输出长度
var $a_len=$a.length; //输出4
var $b_len=$b.length; //输出3
选择器
1. #id根据给定ID匹配一个元素,返回单个元素
2 .class根据给定的类名匹配元素,返回集合
3. element根据给定的元素名匹配元素,返回集合
$('p') //选中所有的<p>元素
4. *匹配所有元素,返回集合
5. selector1,selector2,...将每一个选择器匹配到的元素合并后一起返回
$('div,span,p.myClass')选取所有<div>,<span>,和拥有class为myClass的<p>标签的一组元素
1.改变id为one的元素的背景
$('one').css("background","bEEEEE");
2.改变class为mini的所有元素的背景色
$('.mini').css("background","bEEEEE");
3.改变元素名是<div>的所有元素的背景
$('div').css("background","bEEEEE");
4.改变所有元素的背景色
$('*').css("background","bEEEEE");
5.改变所有的<span>元素和id为two元素的背景色
$('span,#two').css("background","bEEEEE");
//$('prev+next')选择器与next()方法等价关系
$('.one+div') 等价 $('.one').next("div");
$('#prev+div') 等价 $('#prev').nextAll("div");
triggerHandler和trigger区别.txt
1.trigger("blur')不仅会触发为元素邦定的blur事件,也会触发浏览器默认的blur事件,即不能将浏览器光标定位到文本框上,而triggerHandler("blur")只会触发为元素邦定的blur事件,而不会触发浏览器默认的的blur事件
2.执行默认操作
如果只想触发绑定的focus事件,而不想执行浏览器默认操作用 triggerHandler()方法
$("input").triggerHandler("focus");
$("div").trigger("click!"); //感叹号的作用是匹配所有不包含在命名空间中的click方法
---------------------------1.移除事件---------------
1.移除所有click事件
$('#delall').click(function(){$("#btn").unbind("click")});
或者$("delall").click(function(){$("#btn").unbind()})
2.移除单个事件
$("delOne").click(function(){$("#btn").unbind("click",myOnes)})
3.移除节点,remove()和empty()
1).remove()方法的作用是从DOM中所有匹配的元素,传入的参数用于根据jquery表达式来筛选元素
Eg:从<ul>节点中的第二个<li>元素节点
$('ul li:eq(1)').remove(); //获取第二个<li>元素节点后,将它从网页中删除
//或者删除之后再重新添加到<ul>元素里
var $li=$('ul li:eq(1)').remove();
$li.appendTo('ul'); //添加/追加到Ul元素里
2).empty()方法并不是删除节点,而是清空,它能清空元素中的所有的后代节点
$('ul li:eq(1)').empty();
1.查找元素节点
var $li==$('ul li:eq(1)'); //获取<ul>里第2个<li>节点
var li=$li.text(); //获取第2个<li>元素节点的文本内容
2.查找属性节点
var $p=$('p'); //获取<p>节点
var p_txt=$p.attr('title'); //获取<p>元素节点属性title