jquery(JQuery是什么)
本文目录
- JQuery是什么
- jquery 插件怎么使用
- jquery ready 与window.onload的有什么区别
- 改变html里面的内容用innerhtml方法怎么写,用jquery
- jquery ready和onload的区别
- Jquery中的append跟prepend,after和before的区别
JQuery是什么
Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
jquery 插件怎么使用
1.使用script标签加载jquery框架
2.使用script标签加载插件
3.看插件是否有api,如果有的话按照api调用
4.如果没有api,就自己看源码
一般来说jquery插件的调用方法都是
$(’element’).plugName(param);
其中element是你用选择选择的要执行插件方法的对象,plugName是你插件中的方法名称,param是插件方法的参数。
当然,也有的插件不是这样调用的,也有的插件是需要你在html标签中加入以下class。
具体还是要看你用的插件的api
jquery ready 与window.onload的有什么区别
扒了一下jquery2.0的源码。把几个关键的片段放出来。
//1
completed = function() {
document.removeEventListener( “DOMContentLoaded“, completed, false );
window.removeEventListener( “load“, completed, false );
jQuery.ready();
};
//2
jQuery.fn = jQuery.prototype = {
ready: function( fn ) {
//
jQuery.ready.promise().done( fn );
return this;
},
}
//3
jQuery.ready.promise = function( obj ) {
if ( !readyList ) {
readyList = jQuery.Deferred();
if ( document.readyState === “complete“ ) {
setTimeout( jQuery.ready );
} else {
document.addEventListener( “DOMContentLoaded“, completed, false );
window.addEventListener( “load“, completed, false );
}
}
return readyList.promise( obj );
};
//4
jQuery.extend({
Deferred: function( func ) {
//这里代码太复杂。不扒了。
//但是大概可以理解,并简化为这样。
return {
done:function(fn){
fn.call( document ,Jquery );
}
};
}
所以:$(document).ready(fn);实际上就是监听window.onload事件。然后添加事件函数的。没什么区别。
但有一点要注意:用了window.onload=function(){}就不要用$(document).ready(function(){});
否则会执行两次初始化。原因是,jquery的ready通过addEventListener实现的,意味着和window.onload不冲突。它
所以一个window.onload就绑定了两个函数。就会执行两次。
改变html里面的内容用innerhtml方法怎么写,用jquery
jquery的语法不是innerHTML了,提供了3种,text(),val(),html();
使用方法,$(“div“).text(“test“);$(“input“).val(“test“);$(“div“).html(“test“);
你可以根据需要选择使用哪一种。
获取的话就更方便了, ...text(); .....val(),; ...html();
jquery ready和onload的区别
1、window.onload必须等到页面内包括多媒体等所有元素加载完毕后才能执行,
$(document).ready()是DOM结构绘制完毕后就执行,不必等到多媒体加载完毕,ready()快于onload;
2、window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
$(document).ready()可以同时编写多个,并且都可以得到执行
Jquery中的append跟prepend,after和before的区别
一、after()和before()方法的区别
after()——其方法是将方法里面的参数添加到jquery对象后面去;
如:A.after(B)的意思是将B放到A后面去;
before()——其方法是将方法里面的参数添加到jquery对象前面去。
如:A.before(B)的意思是将A放到B前面去;
二、insertAfter()和insertBefore()的方法的区别
其实是将元素对调位置;
可以是页面上已有元素;也可以是动态添加进来的元素。
如:A.insertAfter(B);即将A元素调换到B元素后面;
如《span》CC《/span》《p》HELLO《/p》使用$(“span“).insertAfter($(“p“))后,就变为《p》HELLO《/p》《span》CC《/span》了。两者位置调换了
三、append()和appendTo()方法的区别
append()——其方法是将方法里面的参数添加到jquery对象中来;
如:A.append(B)的意思是将B放到A中来,后面追加,A的子元素的最后一个位置;
appendTo()——其方法是将jquery对象添加到appendTo指定的参数中去。
如:A.appendTo(B)的意思是将A放到B中去,后面追加,B的子元素的最后一个位置;
四、prepend()和prependTo()方法的区别
append()——其方法是将方法里面的参数添加到jquery对象中来;
如:A.append(B)的意思是将B放到A中来,插入到A的子元素的第一个位置;
appendTo()——其方法是将jquery对象添加到appendTo指定的参数中去。
如:A.appendTo(B)的意思是将A放到B中去,插入到B的子元素的第一个位置;
例子
1、insert局部方法
/**
* 在父级元素上操作DOM
* @param {Object} parent 父级元素,可以是element,也可以是Yquery对象
* @param {String} position 位置: beforebegin/afterbegin/beforeend/afterend
* @param {*} any 任何:string/text/object
* @param {Number} index 序号,如果大于0则复制节点
* @return {Undefined}
* @version 1.0
* 2013年12月2日17:08:26
*/
function _insert(parent, position, any, index) {
if ($.isFunction(any)) {
any = any.call(parent);
}
// 字符串
if ($.isString(any)) {
if (regTag.test(any)) {
parent.insertAdjacentHTML(position, any);
} else {
parent.insertAdjacentText(position, any);
}
}
// 数字
else if ($.isNumber(any)) {
parent.insertAdjacentText(position, any);
}
// 元素
else if ($.isElement(any)) {
parent.insertAdjacentElement(position, index 》 0 ? any.cloneNode(!0) : any);
}
// Yquery
else if (_isYquery(any)) {
any.each(function() {
_insert(parent, position, this);
});
}
}
2、append、prepend、before、after
$.fn = {
/**
* 追插
* 将元素后插到当前元素(集合)内
* @param {String/Element/Function} any
* @return this
* @version 1.0
* 2013年12月29日1:44:15
*/
append: function(any) {
return this.each(function(index) {
_insert(this, ’beforeend’, any, index);
});
},
/**
* 补插
* 将元素前插到当前元素(集合)内
* @param {String/Element/Function} any
* @return this
* @version 1.0
* 2013年12月29日1:44:15
*/
prepend: function(any) {
return this.each(function(index) {
_insert(this, ’afterbegin’, any, index);
});
},
/**
* 前插
* 将元素前插到当前元素(集合)前
* @param {String/Element/Function} any
* @return this
* @version 1.0
* 2013年12月29日1:44:15
*/
before: function(any) {
return this.each(function(index) {
_insert(this, ’beforebegin’, any, index);
});
},
/**
* 后插
* 将元素后插到当前元素(集合)后
* @param {String/Element/Function} any
* @return this
* @version 1.0
* 2013年12月29日1:44:15
*/
after: function(any) {
return this.each(function(index) {
_insert(this, ’afterend’, any, index);
});
}
};
3、prependTo、prependTo、insertBefore、insertAfter
这些带后缀的与上面的不同的是,返回的结果不一样。如:
$(’#demo’).append(’《a/》’);
// =》 返回的是 $(’#demo’)
$(’《a/》’).appendTo($(’#demo’));
// =》 返回的是$(’a’);
因此两者的关系只是返回结果不一样,其他的都一样,可以这么解决:
_each({
appendTo: ’append’,
prependTo: ’prepend’,
insertBefore: ’before’,
insertAfter: ’after’
}, function(key, val) {
$.fn[key] = function(selector) {
this.each(function() {
$(selector)[val](this);
});
return this;
};
});
更多文章:
有免费的ps中文版软件吗(去哪里下载免费的photoshop)
2024年7月20日 19:55
默认网关怎么填(电脑的ip地址 默认网关 子网掩码等怎么填的)
2024年6月7日 11:55
hp1180c打印机驱动下载(急!!HP惠普Deskjet 1180c打印机驱动怎么安装)
2024年7月20日 09:34
罐子里的锤子(有一部动画片,里面有个是魔方的房子还有一把锤子,可以把东西变大变小那个动画片叫什么)
2024年6月23日 03:42