jquery学习(转载)
花了两天时间系统性的学习jQuery,获益匪浅。之前摸着石头写的一些jQuery程序也得到了相应的改良,以下便是我这两天的学习心得:
选择器 Selectors:
$(
"*"
)
//选择所有标签
$(
"div:animated"
)
//选择正在动画中的div标签
$(
'a[hreflang|=en]'
)
//选择包含en的a标签,并且en后面只能跟"-"
$(
"input[name*='man']"
)
//选择name属性中包含'man'的input标签
$(
"input[name~=man]"
)
//选择name属性中包含'man'但只能和空格相连的input标签,如 $("input[name~=man]") 匹配 <input name="milk man" />
$(
"input[name$='letter']"
)
//选择以'letter'结尾的input标签
$(
"input[name='newsletter']"
)
//选择name属性等于'newsletter'的input标签
$(
"input[name!=newsletter]"
)
//选择name属性不等于'newsletter'的input标签
$(
"input[name^='news']"
)
//选择name属性中以'news'开头的input标签
$(
":button"
)
//匹配按钮
$(
"form input:checkbox"
)
//匹配多选按钮
$(
"input:checked"
)
//选择已勾选的按钮
$(
"ul.topnav > li"
)
//选择 ul.topnav 下一辈的 li 标签
$(
".myClass"
)
//选择普配class名myClass的标签
$(
"div:contains('John')"
)
//选择包含'John'字符串的div标签
$(
"form input"
)
//匹配form标签下的所有input
$(
"input:disabled"
)
//匹配已禁用的input
$(
"div"
)
//选择div标签
$(
"td:empty"
)
//选择空的td标签
$(
"input:enabled"
)
//选择启用的input标签
$(
"td:eq(2)"
)
//选择第3个td标签
$(
"tr:even"
)
//选择偶数的tr标签(0,2,4...)
$(
"input:file"
)
//选择文件域
$(
"div span:first-child"
)
//选择每个div标签下的第1个span标签(可能有多个)
$(
"tr:first"
)
//选择第1个tr标签(只有一个)
$(
"td:gt(4)"
)
//选择第5个td标签后的所有td标签(包含第5个)
$(
"div[id]"
)
//选择包含id属性的div标签
$(
"div:has(p)"
)
//选择包含p标签的div标签
$(
":header"
)
//选择h1,h2,h3,h4,h5,h6标签
$(
":hidden"
)
//选择隐藏的标签
$(
"#myDiv"
)
//选择id为myDiv的标签
$(
"input:image"
)
//选择图像域
$(
":input"
)
//选择input标签
$(
"div span:last-child"
)
//选择div下的最后一个span标签(可能有多个)
$(
"tr:last"
)
//选择最后一个tr标签(只有一个)
$(
"td:lt(4)"
)
//选择第5个以前的td标签(不包含第5个)
$(
"input[id][name$='man']"
)
//多重属性选择,选择包含id属性和name属性以'man'结尾的input标签
$(
"div,span,p.myClass"
)
//多重选择,选择div标签,span标签和class名为myClass的p标签
$(
"label + input"
)
//选择前面是label标签的input标签
$(
"#prev ~ div"
)
//选择id为prev之后的所有同辈div标签
$(
"input:not(:checked) + span"
)
//选择前面是未勾选的多选按钮的span标签
$(
"ul li:nth-child(2)"
)
//选择ul标签下第2个li标签
$(
"tr:odd"
)
//选择奇数的tr标签
$(
"div button:only-child"
)
//选择div下只有一个button的input标签
$(
"td:parent"
)
//选择含有子元素或文本的td标签
$(
"input:password"
)
//选择密码框
$(
"input:reset"
)
//选择重设按钮
$(
"select option:selected"
)
//选择已被选的选项
$(
":submit"
)
//选择提交按钮
$(
"form input:text"
)
//选择文本输入框
$(
"div:visible"
)
//选择显示的div元素
属性 Attributes:
$(
'p'
).addClass(
'myClass yourClass'
);
//增加class名: myClass yourClass
$(
'p'
).removeClass(
'myClass noClass'
).addClass(
'yourClass'
);
//移除class名: myClass noClass, 并增加class名: yourClass
$(
'ul li:last'
).addClass(
function
() {
return
'item-'
+ $(
this
).index(); });
//增加以"item-索引值"的class名
$(
"p"
).toggleClass(
"selected"
);
//如果p标签下存在selected类,就删除该类,否则添加该类
$(
"em"
).attr(
"title"
)
//返回em标签的title值
$(
"img"
).attr(
"src"
,
"test.jpg"
);
//设置图片路径为"test.jpg"
$(
"img"
).attr(
"title"
,
function
() {
return
this
.src });
//为所有img标签添加值为图片路径的title
$(
"img"
).attr({ src:
"test.jpg"
, alt:
"Test Image"
});
//批量设置标签属性
$(
"p:last"
).hasClass(
"selected"
)
//判断最后一个p标签是否包含'selected'的class名
$(
'div.demo-container'
).html();
//返回类名为demo-container的div标签下的html内容,相当于innerHTML
$(
'div.demo-container'
).html(
'<p>true</p>'
);
//设置类名为demo-container的div标签下的html内容为'<p>true</p>',相当于innerHTML
$(
'div.demo-container'
).text();
//返回类名为demo-container的div标签下的html转为实体的内容
$(
"#multiple"
).val()
//返回#multiple的value值
筛选 Traversing:
$(
"div"
).add(
"p"
).css(
"background"
,
"yellow"
);
//在div标签中添加背景颜色为黄色的p标签
$(
"p"
).add(document.getElementById(
"a"
))
//在p标签中添加id为a的
$(
"div"
).find(
"p"
).andSelf().addClass(
"border"
);
//div下的p标签,包括div标签都增加border类
$(
"div"
).children(
".selected"
);
//查找每个div标签中的已经被选择的子元素
$(
'li.item-a'
).closest(
'ul'
).css(
'background-color'
,
'red'
);
//将li.item-a最近的ul标签的背景颜色改为红色
$(
"p"
).contents().not(
"[nodeType=1]"
);
//查找p标签下的所有文本节点
$(
'li'
).each(
function
(index) { alert(index +
': '
+ $(
this
).text()); });
//alert所有li标签的索引和内容
$(
"p"
).find(
"span"
).css(
'background-color'
,
'red'
).end().css(
'background-color'
,
'blue'
);
//将p标签中的span背景颜色改为红色,然后将p标签背景颜色改成蓝色
$(
"div"
).eq(-2).addClass(
"blue"
);
//将倒数第3个div增加blue类
$(
'li'
).filter(
':even'
).css(
'background-color'
,
'red'
);
//将偶数的li标签的背景颜色改成红色
$(
'li'
).filter(
function
(index) {
return
$(
'strong'
,
this
).length == 1;
}).css(
'background-color'
,
'red'
);
//将包含1个strong标签的li标签背景颜色改成红色
$(
"p"
).find(
"span"
).css(
'color'
,
'red'
);
//将p标签中找到的所有span标签的颜色改成红色
$(
"p span"
).first().addClass(
'highlight'
);
//p标签下的第一个span标签加上highlight的类
$(
'li'
).has(
'ul'
).css(
'background-color'
,
'red'
);
//将包含ul的li标签背景颜色改成红色
$(
'ul'
).click(
function
(event) {
if
($(event.target).is(
'li'
) ) {
$(event.target).css(
'background-color'
,
'red'
);
}
});
//如果在ul中点击的对象是li标签,则将li标签的背景颜色改成红色
$(
'li'
).last().css(
'background-color'
,
'red'
);
//将最后一个li标签的背景颜色改成红色
$(
"p"
).append( $(
"input"
).map(
function
(){
return
$(
this
).val();
}).get().join(
", "
) );
//将表单中input的所有值用", "分隔加入到p标签中去
$(
"button[disabled]"
).next();
//选择被禁用的按钮的下一个同辈标签
$(
"div:first"
).nextAll();
//选择第1个div标签后的所有同辈标签
$(
'#term-2'
).nextUntil(
'dt'
);
//选择#term-2后到下一个dt标签的所有标签
$(
'li'
).not(document.getElementById(
'notli'
));
//选择id不等于notli的li标签
$(
"div"
).not(
".green, #blueone"
);
//选择id不等于blueone和类不包含.green的div标签
$(
'li.item-a'
).offsetParent();
//选择li.item-a的偏移父标签(拥有relative或absolute属性的父标签,如果都没有,就是body)
$(
"p"
).parent();
//查找所有p标签的父元素
$(
'li.item-a'
).parentsUntil(
'.level-1'
);
//查找li.item-a一直到.level-1的所有父标签
$(
'li.third-item'
).prev();
//li.third-item的上一个同辈标签
$(
'#term-2'
).prevUntil(
'dt'
); #term-a前一直到dt的所有同辈标签
$(
'li.third-item'
).siblings();
//查找li.third-item的所有同辈函数
$(
"p"
).slice(0, 1);
//选择第1个p元素
文档处理 Manipulation:
addClass();
$(
'.inner'
).after(
'<p>Test</p>'
);
//在.inner后面添加 "<p>Test</p>"
$(
"p"
).append(
"<strong>Hello</strong>"
);
//在p标签里添加 "<strong>Hello</strong>"
$(
"span"
).appendTo(
"#foo"
);
//将span标签及其所有内容移动到$fooli
.attr();
$(
'.container'
).before($(
'h2'
));
//将h2移动到.container之前
$(
'.container'
).before(
"<b>here</b>"
);
//将"<b>here</b>"加到.container之前
$($(
'h2'
)).clone().appendTo(
'.container'
); 将h2复制一份加到.container里
$(
'#p'
).css(
"background-color"
);
//返回#p的background-color
var
obj = $(
"p"
).detach();
//分离函数,清除p标签,并且将被清除的对象保存在变量obj中
$(
"p"
).empty();
//删除p标签中的所有内容
hasClass();
$(
"p"
).height();
//p标签的高度(不包括padding, border和margin)
.html();
$(
"p"
).innerHeight();
//p标签的内部高度(包括padding, 不包括border和margin)
$(
"p"
).innerWidth();
//p标签的内部宽度(包括padding, 不包括border和margin)
$(
'<p>Test</p>'
).insertAfter(
'.inner'
);
//将'<p>Test</p>'插入到.inner后面,作用等同于after,只是主宾位置不同
$(
'h2'
).insertBefore($(
'.container'
));
//将h2标签插入到.container之前,作用等同于before,只是主宾位置不同
var
p = $(
"p:last"
);
var
offset = p.offset();
p.html(
"left: "
+ offset.left +
", top: "
+ offset.top );
//获取最后一个p标签的位移坐标
$(
"p:first"
).outerHeight();
//最后一个p标签的高度(包含padding,border,不包含margin)
$(
"p:first"
).outerHeight(
true
);
//最后一个p标签的高度(包含padding,border,margin)
$(
"p:first"
).outerWidth();
//最后一个p标签的宽度(包含padding,border,不包含margin)
$(
"p:first"
).outerWidth(
true
);
//最后一个p标签的宽度(包含padding,border,margin)
var
p = $(
"p:first"
);
var
position = p.position();
$(
"p:last"
).text(
"left: "
+ position.left +
", top: "
+ position.top );
//获取最后一个p标签的位置(不包含p标签的margin值)
$(
'.inner'
).prepend(
'<p>Test</p>'
);
//将'<p>Test</p>'加到.inner里的最前面
$(
'h2'
).prependTo($(
'.container'
));
//将h2移动到.container里的最前面去
$(
'.hello'
).remove();
//删除包含.hello的标签
$(
'div'
).remove(
'.hello'
);
//删除包含.hello的div标签
$(
"button"
).removeAttr(
"disabled"
);
//移除按钮的disabled属性
.removeClass();
$(
'<h2>New heading</h2>'
).replaceAll(
'.inner'
);
//用h2整个替换掉.inner标签
$(
'.second'
).replaceWith(
'<h2>New heading</h2>'
);
//将.second整个替换成'<h2>New heading</h2>'
$(
"p:first"
).scrollLeft();
//第1个p标签的横向滚动条值
$(
"p:first"
).scrollTop();
//第1个p标签的纵向滚动条值
.text();
.toggleClass();
$(
"button"
).toggle(
function
(){
$(
"p"
).wrap(
"<div></div>"
);
},
function
(){
$(
"p"
).unwrap();
});
//如果p标签没有被div包含则添加div标签,否则去掉div标签
.val();
$(
"p"
).width();
//p标签的宽度(不包括padding, border和margin)
$(
'.inner'
).wrap(
'<div />'
); 将.inner标签分别用<div></div>包起来
$(
'.inner'
).wrapAll(
'<div />'
); 将所有的.inner标签组合在一起用一个<div></div>包起来
$(
'.inner'
).wrapInner(
'<div />'
); 用<div></div>将.inner里的内容包起来
层叠样式表 CSS:
.addClass(); .css(); .hasClass(); .height(); .innerHeight(); .innerWidth(); .offset(); .outerHeight(); .outerWidth(); .position(); .removeClass(); .scrollLeft(); .scrollTop(); .toggleClass(); .width();
事件 Events:
$(
'#foo'
).bind(
'click'
,
function
() {
alert(
'User clicked on "foo."'
);
});
//注册点击事件
$(
'#other'
).blur(
function
() {
$(
'#target'
).blur();
});
//移除焦点时
$(
'.target'
).change(
function
() {
alert(
'Handler for .change() called.'
);
});
//表单改变时
$(
'#other'
).click(
function
() {
$(
'#target'
).click();
});
//单击时
$(
'#target'
).dblclick(
function
() {
alert(
'Handler for .dblclick() called.'
);
});
//双击时
$(
"body"
).delegate(
"p"
,
"click"
,
function
(){
$(
this
).after(
"<p>Another paragraph!</p>"
);
});
//给p标签注册鼠标事件
$(
"#theone"
).live(
"click"
, aClick);
//激活#theone上的click事件,并调用aClick函数
$(
"#theone"
).die(
"click"
, aClick);
//禁用#theone上的click事件
$(window).error(
function
(){
return
true
;
});
//隐藏js脚本错误
$(
"p"
).click(
function
(event) {
alert( event.currentTarget ===
this
);
// true
});
//当前事件的对象
$(
"a"
).each(
function
(i) {
$(
this
).bind(
'click'
, {index:i},
function
(e){
alert(
'my index is '
+ e.data.index);
});
});
//事件的索引
//在div上存储数据
$(
"div"
).data(
"blah"
);
// undefined
$(
"div"
).data(
"blah"
,
"hello"
);
// blah设置为hello
$(
"div"
).data(
"blah"
);
// hello
$(
"div"
).data(
"blah"
, 86);
// 设置为86
$(
"div"
).data(
"blah"
);
// 86
$(
"div"
).removeData(
"blah"
);
//移除blah
$(
"div"
).data(
"blah"
);
// undefined
$(
"a"
).click(
function
(event){
alert( event.isDefaultPrevented() );
// false
event.preventDefault();
alert( event.isDefaultPrevented() );
// true
});
//isDefaultPrevented?
function
immediatePropStopped(e) {
var
msg =
""
;
if
( e.isImmediatePropagationStopped() ) msg =
"called"
else
msg =
"not called"
;
$(
"#stop-log"
).append(
"<div>"
+ msg +
"</div>"
);
}
$(
"button"
).click(
function
(event) {
immediatePropStopped(event);
event.stopImmediatePropagation();
//停止执行该事件
immediatePropStopped(event);
});
//isImmediatePropagationStopped 判断函数或事件是否被禁止执行
function
propStopped(e) {
var
msg =
""
;
if
( e.isPropagationStopped() ) msg =
"called"
else
msg =
"not called"
;
$(
"#stop-log"
).append(
"<div>"
+ msg +
"</div>"
);
}
$(
"button"
).click(
function
(event) {
propStopped(event);
event.stopPropagation();
propStopped(event);
});
//isPropagationStopped? stopPropagation?
$(document).bind(
'mousemove'
,
function
(e){
$(
"#log"
).text(
"e.pageX: "
+ e.pageX +
", e.pageY: "
+ e.pageY);
});
//相对于文档的鼠标坐标
$(
"a"
).click(
function
(event) {
event.preventDefault();
});
//阻止链接的所有行为,包括打开链接
$(
"a"
).mouseout(
function
(event) {
alert(event.relatedTarget.nodeName);
// "DIV"
});
//返回与事件有关联的对象
$(
"button"
).click(
function
(event) {
return
"hey"
;
});
$(
"button"
).click(
function
(event) {
$(
"p"
).html( event.result );
});
//返回鱼事件相关的结果
$(
"p"
).click(
function
(event){
event.stopImmediatePropagation();
});
$(
"p"
).click(
function
(event){
// This function won't be executed
$(
this
).css(
"background-color"
,
"#f00"
);
});
//停止执行某事件
$(
"body"
).click(
function
(event) {
$(
"#log"
).html(
"clicked: "
+ event.target.nodeName);
});
//返回被点击对象
event.timeStamp;
//时间的时间戳,可以用来计算两次事件间隔的时间
$(
"a"
).click(
function
(event) {
alert(event.type);
// "click"
});
//返回事件类型
$('
#whichkey').bind('keydown',function(e){
$('
#log').html(e.type + ': ' + e.which );
});
//返回按键的ascii码
$('
#target').focus(function() {
alert('Handler
for
.focus() called.
');
}); //聚焦事件时
$("p").focusin(function() {
$(this).find("span").css('
display
','
inline
').fadeOut(1000);
});
var fo = 0, b = 0;
$("input").focusout(function() {
fo++;
$("#fo").text("focusout fired: " + fo + "x");
}).blur(function() {
b++;
$("#b").text("blur fired: " + b + "x");
}); //移出焦点时
$('
#target').keydown(function() {
alert('Handler
for
.keydown() called.
');
}); //按下按键时
$('
#target').keypress(function() {
alert('Handler
for
.keypress() called.
');
}); //按下按键时
$('
#target').keyup(function() {
alert('Handler
for
.keyup() called.
');
}); //抬起按键时
$("p").live("myCustomEvent", function(e, myName, myValue){
$(this).text("Hi there!");
$("span").stop().css("opacity", 1).text("myName = " + myName).fadeIn(30).fadeOut(1000);
});
$("button").click(function () {
$("p").trigger("myCustomEvent");
}); //live?
$(window).load(function () {
// run code
});
$('
#book').load(function() {
// Handler for .load() called.
});
//读取事件
$('
#target').mousedown(function() {
alert('Handler
for
.mousedown() called.
');
}); //鼠标按下事件
$("div.overout").mouseover(function(){
$("p:first",this).text("mouse over");
$("p:last",this).text(++i);
}).mouseout(function(){
$("p:first",this).text("mouse out");
}); //鼠标经过和离开
$("div.enterleave").mouseenter(function(){
$("p:first",this).text("mouse enter");
$("p:last",this).text(++n);
}).mouseleave(function(){
$("p:first",this).text("mouse leave");
}); //鼠标进入和离开
$("div").mousemove(function(e){
var pageCoords = "( " + e.pageX + ", " + e.pageY + " )";
var clientCoords = "( " + e.clientX + ", " + e.clientY + " )";
$("span:first").text("( e.pageX, e.pageY ) - " + pageCoords);
$("span:last").text("( e.clientX, e.clientY ) - " + clientCoords);
}); //鼠标移动时
$('
#target').mouseup(function() {
alert('Handler
for
.mouseup() called.
');
}); //鼠标松开按键时
$("p").one("click", function(){
alert( $(this).text() );
}); //只执行一次事件
var obj = {
name: "John",
test: function() {
alert( this.name );
$("#test").unbind("click", obj.test);
}
};
$("#test").click( jQuery.proxy( obj, "test" ) );
// This also works:
// $("#test").click( jQuery.proxy( obj.test, obj ) );
// 代理事件
$(document).ready(function() {
// Handler for .ready() called.
}); //当文档完全加载时
$(window).resize(function() {
$('
#log').append('<div>Handler for .resize() called.</div>');
});
//当窗口大小改变时
$('
#target').scroll(function() {
$('
#log').append('<div>Handler for .scroll() called.</div>');
});
//当拖动滚动条时
$('
#target').select(function() {
alert('Handler
for
.select() called.
');
}); //当选择时
$('
#target').submit(function() {
alert('Handler
for
.submit() called.
');
return false;
}); //当表单提交时
$("li").toggle(
function () {
$(this).css({"list-style-type":"disc", "color":"blue"});
},
function () {
$(this).css({"list-style-type":"disc", "color":"red"});
},
function () {
$(this).css({"list-style-type":"", "color":""});
}
); //切换开关,第一次点击蓝色,第二次点击是红色,第三次点击是默认色,循环
$("button:first").trigger('
click
'); //触发第一个button的click事件
$("input").triggerHandler("focus"); //触发focus事件
$('
#foo').unbind('click', handler); //移除click事件
$(
"body"
).undelegate(
"#theone"
,
"click"
, aClick);
//移除委任的事件
$(window).unload(
function
() { alert(
"Bye now!"
); } );
//窗口关闭时
效果 Effects:
$(
"#block"
).animate({
width:
"70%"
,
opacity: 0.4,
marginLeft:
"0.6in"
,
fontSize:
"3em"
,
borderWidth:
"10px"
}, 1500 );
//动画效果
$(
"div"
).clearQueue();
//清除队列
$(
"div.first"
).slideUp(300).delay(800).fadeIn(400); 延迟800毫秒进入下一个动画
$(
"div"
).animate({left:
'+=200px'
}, 2000);
$(
"div"
).animate({top:
'0px'
}, 600);
$(
"div"
).queue(
function
() {
$(
this
).toggleClass(
"red"
);
$(
this
).dequeue();
//离队,如果没有这个就会卡在上一步
});
$(
"div"
).animate({left:
'10px'
, top:
'30px'
}, 700);
$(
"div:hidden:first"
).fadeIn(
"slow"
);
//慢速淡入
$(
'#book'
).fadeOut(
'slow'
,
function
() {
// Animation complete.
});
//慢速淡出,并调用动画函数
$(
"p:first"
).click(
function
() {
$(
this
).fadeTo(
"slow"
, 0.33);
});
//慢速调整不透明度到 0.33
var
toggleFx =
function
() {
$.fx.off = !$.fx.off;
};
//打开和关闭jQuery效果
toggleFx();
$(
"button"
).click(toggleFx);
$(
"input"
).click(
function
(){
$(
"div"
).toggle(
"slow"
);
});
$(
'#book'
).hide(
'slow'
,
function
() {
alert(
'Animation complete.'
);
});
//慢速隐藏标签,并调用函数
$(
"#show"
).click(
function
() {
var
n = $(
"div"
).queue(
"fx"
);
$(
"span"
).text(
"Queue length is: "
+ n.length);
});
//计算当前动画所属的队列长度
function
runIt() {
$(
"div"
).show(
"slow"
);
$(
"div"
).animate({left:
'+=200'
},2000);
$(
"div"
).slideToggle(1000);
$(
"div"
).slideToggle(
"fast"
);
$(
"div"
).animate({left:
'-=200'
},1500);
$(
"div"
).hide(
"slow"
);
$(
"div"
).show(1200);
$(
"div"
).slideUp(
"normal"
, runIt);
}
runIt();
$(
'#clickme'
).click(
function
() {
$(
'#book'
).show(
'slow'
,
function
() {
// Animation complete.
});
});
//慢速显示并调用函数
$(
"div"
).slideDown(
"slow"
);
//向下播放幻灯
$(
"div"
).slideUp(
"slow"
);
//向上播放幻灯
$(
"button"
).click(
function
() {
$(
"p"
).slideToggle(
"slow"
);
});
//循环切换幻灯效果
$(
this
).find(
'img'
).stop(
true
,
true
).fadeOut();
//停止动画,并且清除队列跳到最后,stop的两个参数默认都是false
.toggle();
AJAX:
$.ajax({
async:
true
,
//(默认: true) 是否异步,
cache:
true
,
//(默认: true) 是否缓存, false可用在 dataType 'script' 和 'jsonp'
dataType:
'text'
,
//返回的数据类型,可以是 'xml', 'html', 'json', 'jsonp', 'script', 'text'.
beforeSend:
function
() { $(
this
).append(
"<p>Before Send!</p>"
); },
//在发送http请求之前执行的函数
complete:
function
(XMLHttpRequest, textStatus) {
$(
this
).append(
"<p>XML is load completed, Stats is "
+ textStatus +
"!</p>"
);
},
contentType:
"application/x-www-form-urlencoded"
,
//内容类型,默认是 "application/x-www-form-urlencoded"
context: $(
'.result'
),
//上下文, $(this) = $('.result')
data: { uid: 1, foo:[
"bar1"
,
"bar2"
],
/*自动转换为 '&foo=bar1&foo=bar2' */
},
//url参数,可以是对象也可以是字符串('foo=bar1&foo=bar2')
dataFilter:
function
(data, type) {
var
data = data +
" 增加的数据"
;
return
data;
},
//对返回的数据进行过滤处理
error:
function
(XMLHttpRequest, textStatus, errorThrown) {
$(
this
).append(
"<p>XMLHttpRequest "
+XMLHttpRequest+
" & textStatus"
+ textStatus +
"errorThrown: "
+ errorThrown +
"</p>"
);
},
//错误时
global:
true
,
//(默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件
ifModified:
false
,
//(默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。
jsonp:
'onJsonPLoad'
,
//在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,比如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。
jsonpCallback:
'onJsonPLoad'
,
//用不上
password:
'12345678'
,
//用于响应HTTP访问认证请求的密码
processData:
true
,
//(默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
scriptCharset:
'utf-8'
,
//只有当请求时dataType为"jsonp"或"script",并且type是"GET"才会用于强制修改charset。通常在本地和远程的内容编码不同时使用。
success:
function
(data, textStatus, XMLHttpRequest) {
$(
this
).append(
"<p>Result: "
+data+
"</p>"
);
$(
this
).append(
'<p>Load was performed. Stats is '
+ textStatus +
'!</p>'
);
},
//成功时
timeout:
'20000'
,
//设置请求超时时间(毫秒)。此设置将覆盖全局设置。
traditional:
true
,
//如果想使用传统的参数数列,将此项设置为true
type:
'POST'
,
//(默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
url:
'杂志改版颜色.txt'
,
//(默认: 当前页地址) 发送请求的地址。
username:
'kbzwxq'
,
//用于响应HTTP访问认证请求的用户名
//xhr: function() { alert("x") } //回调函数生成 XMLHttpRequest 对象. Defaults to the ActiveXObject when available (IE), the XMLHttpRequest otherwise. Override to provide your own implementation for XMLHttpRequest or enhancements to the factory.
});
$.ajaxSetup({
url:
'杂志改版颜色.txt'
,
success:
function
(data, textStatus, XMLHttpRequest) {
$(
'.result'
).append(
"<p>Result: "
+data+
"</p>"
);
$(
'.result'
).append(
'<p>Load was performed. Stats is '
+ textStatus +
'!</p>'
);
}
});
//安装ajax
$.ajax();
<
div
style
=
"background: red;color: #fff;"
>Trigger</
div
>
<
div
style
=
"background: green;color: #fff;"
></
div
>
<
div
style
=
"background: blue;color: #fff;"
></
div
>
<
script
>
$('.log').ajaxStart(function() {
$(this).append('<
p
>Triggered ajaxStart handler.</
p
>');
}); //当ajax开始时
$('.log').ajaxSend(function(e, xhr, settings) {
if (settings.url == '杂志改版颜色.txt') $(this).append('<
p
>Triggered ajaxSend handler.</
p
>');
}); //当ajax请求发送时执行
$('.log').ajaxSuccess(function(e, xhr, settings) {
if (settings.url == '杂志改版颜色.txt') $(this).append('<
p
>Triggered ajaxSuccess handler.</
p
>');
}); //当ajax成功时
$('.log').ajaxComplete(function(e, xhr, settings) {
if (settings.url == '杂志改版颜色.txt') $(this).append('<
p
>Triggered ajaxComplete handler.</
p
>');
}); //当ajax完成时执行
$('.log').ajaxStop(function() {
$(this).append('<
p
>Triggered ajaxStop handler.</
p
>');
}); //当ajax停止时
$('.log').ajaxError(function(e, xhr, settings, exception) {
if (settings.url == '杂志改版颜色1.txt') $(this).text('Triggered ajaxError handler.');
}); //当ajax错误时执行
$('.trigger').click(function() {
$('.result').load('杂志改版颜色.txt', function() {
$('.log').append('<
p
>Load was performed.</
p
>');
});
});
</
script
>
<
ul
id
=
"footerNavigation"
>
<
li
><
a
href
=
"#"
>Download</
a
></
li
>
<
li
><
a
href
=
"#"
>Documentation</
a
></
li
>
<
li
><
a
href
=
"#"
>Tutorials</
a
></
li
>
<
li
><
a
href
=
"#"
>Bug Tracker</
a
></
li
>
<
li
><
a
href
=
"#"
>Discussion</
a
></
li
>
</
ul
>
<
b
>Footer navigation:</
b
>
<
ol
id
=
"new-nav"
></
ol
>
<
script
>
$("#new-nav").load("#footerNavigation li"); //将#footerNavigation下的所有li读取到#new-nav
</
script
>
<
div
style
=
"background: blue;color: #fff;"
></
div
>
<
script
>
var myObject = {
a: {
one: 1,
two: 2,
three: 3
},
b: [1,2,3]
};
var recursiveEncoded = $.param(myObject, true); //是否使用传统参数 true
var recursiveDecoded = decodeURIComponent($.param(myObject));
jQuery('.log').append("<
p
>"+recursiveEncoded+"</
p
>");
jQuery('.log').append("<
p
>"+recursiveDecoded+"</
p
>");
</
script
> //转换url参数
$.get(
'杂志改版颜色.txt'
,
{ name:
"John"
, time:
"2pm"
},
function
(data, textStatus, XMLHttpRequest) {
$(
'.result'
).html(data);
},
'text'
);
//Ajax GET
$.post(
'杂志改版颜色.txt'
,
{ name:
"John"
, time:
"2pm"
},
function
(data, textStatus, XMLHttpRequest) {
$(
'.result'
).html(data);
},
'text'
);
//Ajax POST
$.getJSON(
'ajax/test.json'
,
function
(data) {
$(
'.result'
).html(
'<p>'
+ data.foo +
'</p>'
+
'<p>'
+ data.baz[1] +
'</p>'
);
});
//读取json
$.getScript(
'ajax/test.js'
,
function
(data, textStatus) {
alert(
'Load was performed.'
);
});
//读取脚本
$(
'form'
).submit(
function
() {
alert($(
this
).serialize());
//返回表单的url参数
return
false
;
});
$(
'form'
).submit(
function
() {
alert($(
this
).serializeArray());
//返回表单的url参数对象数组
return
false
;
});
工具 Utilities:
jQuery.boxModel;
//判断浏览器是否使用了符合w3c的标准盒模型
jQuery.each(jQuery.browser,
function
(i, val) {
$(
"<div>"
+ i +
" : <span>"
+ val +
"</span>"
).appendTo(document.body);
});
//判断浏览器的类型
$(
"#start"
).click(
function
() {
$(
"div"
).show(
"slow"
);
$(
"div"
).animate({left:
'+=200'
},5000);
$(
"div"
).queue(
function
() {
$(
this
).addClass(
"newcolor"
);
$(
this
).dequeue();
});
$(
"div"
).animate({left:
'-=200'
},1500);
$(
"div"
).queue(
function
() {
$(
this
).removeClass(
"newcolor"
);
$(
this
).dequeue();
});
$(
"div"
).slideUp();
});
$(
"#stop"
).click(
function
() {
$(
"div"
).clearQueue();
//清除动画队列
$(
"div"
).stop();
});
jQuery.contains(document.documentElement, document.body);
// true
jQuery.contains(document.body, document.documentElement);
// false
//判断前者是否包含后者
var
div = $(
"div"
)[0];
jQuery.data(div,
"test"
, { first: 16, last:
"pizza!"
});
$(
"span:first"
).text(jQuery.data(div,
"test"
).first);
$(
"span:last"
).text(jQuery.data(div,
"test"
).last);
//保存数据到标签中
$(
"button"
).click(
function
() {
$(
"div"
).animate({left:
'+=200px'
}, 2000);
$(
"div"
).animate({top:
'0px'
}, 600);
$(
"div"
).queue(
function
() {
$(
this
).toggleClass(
"red"
);
$(
this
).dequeue();
//执行下一个函数队列
});
$(
"div"
).animate({left:
'10px'
, top:
'30px'
}, 700);
});
$(
"button"
).click(
function
() {
$(
"div"
).animate({left:
'+=200px'
}, 2000);
$(
"div"
).animate({top:
'0px'
}, 600);
$(
"div"
).queue(
function
() {
$(
this
).toggleClass(
"red"
);
$.dequeue(
this
);
//执行下一个函数队列
});
$(
"div"
).animate({left:
'10px'
, top:
'30px'
}, 700);
});
$.each([52, 97],
function
(index, value) {
alert(index +
': '
+ value);
});
//通用例遍方法,可用于例遍对象和数组。
var
map = {
'flammable'
:
'inflammable'
,
'duh'
:
'no duh'
};
$.each(map,
function
(key, value) {
alert(key +
': '
+ value);
});
//通用例遍方法,可用于例遍对象和数组。
//合并 settings 和 options,修改并返回 settings。
var
settings = { validate:
false
, limit: 5, name:
"foo"
};
var
options = { validate:
true
, name:
"bar"
};
jQuery.extend(settings, options);
//合并 defaults 和 options, 不修改 defaults。
var
empty = {}
var
defaults = { validate:
false
, limit: 5, name:
"foo"
};
var
options = { validate:
true
, name:
"bar"
};
var
settings = jQuery.extend(empty, defaults, options);
jQuery.globalEval(
"var newVar = true;"
);
//以全局方式执行javascript
$.grep( [0,1,2],
function
(n,i){
return
n > 0;
});
//过滤小于或等于0的数组项目
var
arr = [ 4,
"Pete"
, 8,
"John"
];
jQuery.inArray(
"John"
, arr);
//判断'John'是否在arr数组里并返回索引值, 如果不存在则返回-1
$.isArray([]);
//判断参数是否为数组,return true/false.
jQuery.isEmptyObject({})
// true
jQuery.isEmptyObject({ foo:
"bar"
})
// false
//判断是否为空的对象
jQuery.isFunction(objs[i]);
//判断是否为函数
jQuery.isPlainObject({})
// true
jQuery.isPlainObject(
"test"
)
// false
//判断是否为简单对象
jQuery.isXMLDoc(document)
// false
jQuery.isXMLDoc(document.body)
// false
//判断是否为xml文档
var
elems = document.getElementsByTagName(
"div"
);
// returns a nodeList
var
arr = jQuery.makeArray(elems);
//将类数组对象转换为数组对象
var
newArr = $.map( [0,1,2],
function
(n){
return
n + 4; });
//将源数组中的所有键值+4后赋值给新数组
var
first = [
'a'
,
'b'
,
'c'
];
var
second = [
'd'
,
'e'
,
'f'
];
$.merge($.merge([], first), second);
//合并两个数组, 不赋值给第一个数组
$.merge(first, second);
//合并两个数组, 并将结果赋值给第一个数组
jQuery.noop();
//一个空函数
var
obj = jQuery.parseJSON(
'{"name":"John"}'
);
alert( obj.name ===
"John"
);
//从语法上分析一个JSON字符串
var
obj = {
name:
"John"
,
test:
function
() {
alert(
this
.name );
$(
"#test"
).unbind(
"click"
, obj.test);
}
};
$(
"#test"
).click( jQuery.proxy( obj,
"test"
) );
//代理对象函数
obj.queue();
//函数队列?
jQuery.queue();
//函数队列?
jQuery.removeData(div,
"test1"
);
//移除标签上的数据
jQuery.support.boxModel;
//是否支持w3c盒模型
$.trim(
" hello, how are you? "
);
//删除字符串首尾的空格
var
divs = $(
"div"
).get();
// 将对象转换为对象数组
divs = divs.concat($(
".dup"
).get());
//合并3个对象数组到divs
$(
"div:eq(1)"
).text(
"Pre-unique there are "
+ divs.length +
" elements."
);
//有9个元素
divs = jQuery.unique(divs);
//其中有3个是重复的,需要用unique函数去掉他们
$(
"div:eq(2)"
).text(
"Post-unique there are "
+ divs.length +
" elements."
).css(
"color"
,
"red"
);
//就只有6个了
版权声明:
作者:xiaoniba
链接:https://blog.xiaoniba.com/2017/02/09/test-%e4%b8%83%e5%b9%b4%e5%82%a8%e5%ad%98/
来源:小泥吧的博客
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论