1 概念

1.1 js概念

JavaScript是用于Web客户端开发的脚本语言。

1.2 jQuery概念

jQuery是一个快速、简洁的JavaScript库,极大的简化了javascript编程。
jQuery是js的框架,基于js语言。
功能:集合Ajax技术开发出来的js库,封装js和Ajax的功能,提供函数接口,简化js的操作。(注:在大多数的项目中,jQuery 用的比较多)。

本质区别:
所以,最本质的区别就是js是一种语言,而jQuery是基于该语言的一种框架。除却最本质的区别还有一些用法上的差别。

2 jQuery和js用法上的区别

2.1 获取元素

2.1.1 根据ID取元素

js:取到的是一个DOM对象;

var element = document.getElementByID("one");

jQuery:取到的是一个jQuery对象;

var element = $("#one");

括号里面是根据某个东西来找,相当于一个选择,如果我们要根据ID来找,在样式表里的ID是用#来表示的,所以在这里我们直接带入井号,整句的意思就是根据ID为one的来查找。

2.1.2 根据class取元素

在数组里面如果要取DOM对象使用索引的方式,如果要取jQuery对象使用eq()
js:取到的是一个数组;

var elements = document.ElementsByClassName("test");

jQuery:

var elements = $(".test");

2.1.3 根据name取元素

js:返回的是一个数组;

var bd = document.getElementsByName(uid);

jQuery:jQuery中使用的是方括号,属性=一个值,不限制非要根据name来取值,jQuery是根据属性来取元素;

$("[name='uid']");

2.1.4 根据标签名取元素

js:返回的也是一个数组;

var divElements = document.getElementsByTagName("div");

jQuery:和样式表里面给所有div加样式的方法一样,在双引号内直接写标签名;

$("div");

2.2 操作内容

2.2.1 非表单元素

js:js获取文本的方法是innerHTML和innerText方法;

jQuery:如果是文本就用text方法,如果是html代码就用html方法;

// 无参数的情况下是取值
element.text();
// 有参数的情况下是赋值
element.text("aaaa");
// 无参数的情况下是取值
element.html();
// 有参数的情况下是赋值
element.html("aaaa");

2.2.2 表单元素

js:

// 取值
element.value;
// 赋值
element.value = xxx;

jQuery:

// 无参数是取值,有参数是赋值
element.val();

2.3 操作属性

js里面用来操作属性的方法是:

// 设置属性、修改属性
element.setAttribute("","");
// 移除属性,引号里面写一个属性名
element.removeAttribute("");
// 获取属性
element.getAttribute();

jQuery里面用来操作属性的方法是:

//添加属性
//给这个attr方法加入参数,属性名叫做test,属性的值是aa
element.attr("test","aa");

//移除属性
//移除test这条属性
element.removeAttr("test");

//获取属性
//在attr方法里面直接写入一个属性的名就可以了
element.attr("test");

2.4 操作样式

js里面操作样式的关键字是style:

//把这个div的背景色设置成为了红色
element.style.backgroundColor = "red";

jQuery里面操作样式的关键字是css:

element.css("background-color","yellow");

注:
1、js只能获取到内联样式,内嵌和外部的css样式获取不到。
2、jQuery既可以是内联的也可以是内嵌。
     行内样式(内联):就是代码写在具体网页中的一个元素内;比如:<div style="color:#f00"></div>
     内嵌式:就是在</head>前面写;比如:<style type="text/css">.div{color:#F00}</style>
     外部式:就是引用外部css文件;比如:<link href="css.css" type="text/css" rel="stylesheet"/>

3 常见操作总结

jQuery代码具体的写法和原生的Javascript写法在执行常见操作时的区别如下:

3.1 定位元素

js:

document.getElementById("abc")

jQuery:

$("#abc") //通过id定位
$(".abc") //通过class定位
$("div") //通过标签定位

3.2 改变元素的内容

js:

element.innerHTML = "test";

jQuery:

element.html("test");

3.3 显示隐藏元素

js:

element.style.display = "none";
element.style.display = "block";

jQuery:

element.hide();
element.show();

//在显示和隐藏之间切换
element.toggle();

3.4 获取焦点

js和jQuery是一样的,都是element.focus();

3.5 为表单赋值

js:

element.value = "test";

jQuery:

element.val("test");

3.6 获得表单的值

js:

alert(element.value);

jQuery:

alert(element.val());

3.7 设置元素不可用

js:

element.disabled = true;

jQuery:

element.attr("disabled", true);

3.8 修改元素样式

js:

element.style.fontSize = size;
element.className="test";

jQuery:

element.css('font-size', 20);
element.removeClass();
element.addClass("test");

3.9 判断复选框是否选中

jQuery:

if(element.attr("checked") == "checked")

注意:网上说的.attr("checked") == true实际上不能用,上面这个测试过能用。