想起来就很生气,刚刚写两个多小时的博客因为账号过期,发表后不在我账号,丢失了。很气。花了我三小时宝贵时间。现在呢,只能默默的重新写一份。
写了很久的Jquery框架,今天来总结下具体jquery是什么?到底有什么好的功能?
什么是jquery?
jquery是一个优秀的javascript的轻量级框架,它是js的一个框架,它是开源的项目。对底层的js进行封装,我们通过js框架就可以快速的完成DOM 对元素的增删改查操作,并提供了动画功能。jquery对外提供api让开发者去开发jquery插件。jquery的宗旨是write less do more。
Jquery使用的时候注意
我们使用的jquery属于第三方技术,所以使用它的功能需要导入包。
引入:在需要使用jquery的html中使用js的引入方式进行引入
<script type="text/javascript" src="jquery-1.11.2.min.js></script>
Jquery和javascript有什么区别呢?肯定很多的同事现在还很疑惑。
注意:jquery本质上虽然也是js,但如果使用jquery的属性和方法那么必须保证对象是jquery对象而不是js对象。使用js获取的对象是js对象,使用jquery方式获取的对象是jquery对象。
<body>
<input id="myinput" type="text" value="传智播客"/>
</body>
<script src="js/jquery-1.8.3.js" type="text/javascript" ></script>
<script type="text/javascript">
一, js对象只能使用js对象的方法,jquery对象只能使用jquery对象的方法。
①:使用js获取dom对象,value属性是js对象所拥有的。
var value = document.getElementById("myinput").value;
②:使用jquery来获取 而val()这个方法是属于jquery对象的。显然,js对象并没有.val()这个方法
var value2 = $("#myinput").val();
二,jquery对象与js对象之间的转换
注意;需要注意的是:1,js对象是dom对象,jquery对象其实是一个数组,这个数组里放的是一个一个的js的dom对象。
2,jquery对象的命名,一般如果是jquery对象,那么定义变量名的时候就加上$。
①:js对象转换成jQuery对象,语法:$(js对象)
var myinput = document.getElementById("myinput"); //获取js的对象
var $myinput = $(myinput); //jquery对象 [object Object]
②:jQuery对象转换成js对象,语法:jquery对象[索引]或jquery对象.get(索引)
var $myinput = $(myinput); //jquery对象 [object Object]
var mydiv = $mydiv[0] //,我们是通过id获取的标签对象,所以jquery的数组对象中只有一个js 的dom对象,我们获取数组中的第一个值是通过下标0来获取
三, 事件的写法不同,意义相同
①:js的事件的写法:js对象.onclick = function(){ ... ... }
document.getElementById("myinput").onclick = function(){
alert("弹框");
}
②:jquery的事件的写法:jquery对象.click( function(){ ... ... } )
$("#myinput").click(function(){
alert("弹框");
});
四, js的页面加载完毕与jquery的页面加载完毕
注意:jquery的页面加载完毕事件可以写多次,而js只能写一次,写多次也只 会执行最后一次
①:js的页面加载完毕:window.onload = function(){ ... ... }
window.onload = function(){
alert("js页面加载事件");
}
②;jquery的页面加载完毕:$(document).ready(function(){ ... ... })
jQuery(document).ready(
function(){
alert("jquery页面加载事件");
}
);
简写;
$(function(){
alert("jquery页面加载事件的简写形式");
});
Jquery的选择器是jquery的主要功能之一,通过jquery选择器获取到这些标签,我们就可以通过jquery中的dom方法来操作这些标签。
jquery常用的选择器有如下:
一,基本选择器,
标签选择器(元素选择器):$("html标签名")
id选择器:$("#id的属性值")
类选择器:$(".class的属性值")
组合选择器:$(“选择器名,选择器名”);
二,层级选择器,
获得A元素内部的所有的B元素:$("A B ")
获得A元素下面的所有B 子元素:$("A > B")
获得A元素同级 下一个B元素:$("A + B")
获得A元素同级 所有后面B元素:$("A ~ B")
获得A元素同级 所有B元素:$(“A”).siblings(“B”);
三,属性选择器,
获得有属性名的元素:$("A[属性名]")
获得属性名 等于 值 元素:$("A[属性名=值]")
获得属性名 不等于 值 元素:$("A[属性名!=值]")
获得属性名 以 值 开头 元素:$("A[属性名^=值]")
获得属性名 以 值 结尾 元素:$("A[属性名$=值]")
获得属性名 含有 值 元素:$("A[属性名*=值]")
复合属性选择器,多个属性同时过滤:$("A[属性名!=值][属性名!=值][属性名!=值]")
Jquery的一些简单Dom的操作
一,html代码/文本/值/属性:html()/text()/val()
jquery对象.html();与js中的innerHTML属性的作用是一样的。
jquery对象.text();与js中的innerText属性作用一样
jquery对象.val();与js中的value属性的作用是一样的。
方法中不写参数就是获取值,如果写上参数就是赋值
二, html属性操作:attr()/prop() 优先选择attr()
①:如果传递单个参数,那么就是获取属性值
//获取北京节点的id属性值
var value = $bj.attr("id");
②:如果传递2个参数,就是设置属性的值。
//设置北京节点的name属性的值为dabeijing
$bj.attr("name","dabeijing");
Jquery的遍历在我们前端页面中使用的也是相当的广泛,那么是如何进行遍历操作的呢
一,原始方式遍历
跟java和js一样,既然是数组那么就可以使用原始的for循环进行遍历。
例如:
var $options = $(“option”);
for(var i=0 ; i<$options.length ; i++){
alert(option.value);
}
二,jquery对象的方法
此方式是jquery特有的遍历方式,使用jquery集合对象调用each方法即可遍历。
例如:
var $options = $(“option”);
$options.each(function(index,element){
alert(index); //打印索引
alert(element); //打印$options集合对象中的每一个元素
});
三,jquery的全局方法
此方式是jquery特有的遍历方式,与上面jquery的对象方法相似,但此处的each 方法不是某个具体jquery对象的,而是jquery的全局对象的each方法,名字和功 能虽然相同,但语法不同。
例如:
var $options = $(“option”);
$.each($options,function(index,element){
alert(index); //打印索引
alert(element); //打印$options集合对象中的每一个元素
});
注意:别管是上述的哪种遍历方法,遍历的集合中的每一个元素都是js对象,要想使用 jquery的方法请使用$(js对象)进行转换。
Juqery中的常用事件
jquery的事件与js的事件的功能和意义一样,只是在使用语法上稍微有些差异.
注意:
* 1.jquery中的事件名与js中事件名相比,是少了on
* 2.js中的事件如果重复绑定,那么最后一次绑定会将之前绑定的函数全部覆盖
* jquery中的事件如果重复绑定,那么效果会叠加出现。
在我们Jquery的使用中,有一种常用的方式
function validatePassword(){
//校验2次输入的密码
var pwd1 = $("#psw").val();
var pwd2 = $("#psw2").val();
if(pwd1==pwd2){
$("#psw2Span").html("√密码一致").css("color","green");
return true;
}else{
$("#psw2Span").html("×密码不一致").css("color","red");
return false;
}
}
使用上面的方式我们可以在进行ajax校验的时候,在后面文本框进行信息提示。