jQuery的学习笔记
文章目录
一、jQuery简介
二、jQuery对象与JavaScript中的DOM对象
三、jQuery基本选择器
四、jQuery中的筛选选择器
五、jQuery中的属性操作
六、jQuery中操作属性的方法
七、jQuery中操作样式的方法
一、jQuery简介
1.1 什么是 jQuery ?
• jQuery是一个JavaScrip函数库。
• jQuery是一个轻量级的"写的少,做得多"的JavaScript库。
• jQuery库包含以下功能:
HTML 元素选取l
HTML 元素操作
CSS 操作
HTML 事件函数
JavaScript 特效和动画
HTML DOM 遍历和修改
AJAX
Utilities
提示:除此之外,jQuery还提供了大量的插件
1.2 如何使用jQuery
● jQuery是一个JavaScript脚本库,不需要特别的安装,只需要我们在页面标签内中,通过<script>标签引入jQuery库即可
● jQuery下载地址:https://jquery.com/download/
1.3 jQuery的语法
● jQuery语法是通过选取 HTML 元素,并对选取的元素执行某些操作
● 基础语法:$(selector).action();
- $美元符号定义jQuery
- selector 选择符需要查找的元素 支持cssl~css3中的主流选择器
- action() 执行对元素的操作
例如:
$("p").hide();//隐藏所有 <p> 元素
二、jQuery对象与JavaScript中的DOM对象
2.0 JavaScript中的DOM对象
DOM对象:
1.通过getElementById()查询出来的标签对象是DOM对象
2.通过getElementsByName()查询出来的标签对象是DOM对象
3.通过getElementsByTagName()查询出来的标签对象是DOM对象
4.通过createElement()查询出来的标签对象是DOM对象
DOM对象Alert出来的效果是:[object HTML 标签名Element]
例如:document.getElementById("box");//DOM对象
2.1 jQuery对象
jQuery对象
1.通过jQuery提供的API创建的对象,是jQuery对象。
2.通过jQuery提供的API查询到的对象,是jQuery对象。
3.通过jQuery包装的DOM对象,也是jQuery对象。
在jQuery库中,可以通过自身带的方法获取页面元素的对象叫做jQuery对象
例如:$(".box");//jQuery对象
jQuery对象Alert出来的效果是:[object Object]
2.2 DOM对象与jQuery对象的区别
1.DOM对象是通过原生的JS获取的对象,DOM对象只能使用JS中的方法和属性
2.jQuery对象是通过jQuery包装DOM对象后产生的对象,它是jQuery独有的。
jQuery可以使用jQuery里面的方法,但是不能使用JS中的方法。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQuery对象与JavaScript中的DOM对象</title>
<style>
div {
width: 200px;
height: 200px;
margin-top: 20px;
background: #eba1a1;
}
</style>
</head>
<body>
<div id="box"></div>
<div id="jqBox"></div>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
//js中window.onload
window.onload = function () {
//通过原生的JS代码获取DOM对象
var box = document.getElementById("box");
// console.log(box);//js中的DOM对象
//通过对象的属性修改对象的样式
box.style.width = "400px";
box.innerHTML = "这是一个JS对象";
}
//jQuery中页面加载事件
$(document).ready(function () {
/**
* 通过jQuery语法获取id为jqBox的元素获得一个jQuery对象
* 调用该对象的html()方法进行更改内容
* 调用该对象的css()方法进行更改颜色样式
*/
var $box = $("#jqBox");//jQuery中的对象
// console.log($box);
$box.css("width", "400px");
$box.html("这是一个jQuery对象");
//链式写法
// $("#jqBox").css("width","400px").html("这是一个jQuery对象");
})
//JS对象只能调用JS中提供的方法和属性,不能使用jQuery中的方法和属性
//jQuery对象只能使用jQuery的方法和属性,不能使用JS提供的方法和属性
</script>
3.通过标准的JavaScript操作DOM与jQuery操作DOM的对比,我们不难发现:
● 通过jQuery方法包装后的对象,是一个类数组对象。它与DOM对象完全不 同,唯一相似的是它们都能操作DOM。
● 通过jQuery处理DOM的操作,可以让开发者更专注业务逻辑的开发,
而不需要我们具体知道哪个DOM节点有那些方法,
也不需要关心不同浏览器的兼容性问题,
我们通过jQuery提供的API进行开发,代码也会更加精短。
2.3 DOM对象与jQuery对象之间的转换 //JS对象包含 DOM对象
● jQuery库本质上还是JavaScript代码,它只是对JavaScript语言进行包装处理,
为的是提供更好更方便快捷的DOM处理与开发中经常使用的功能。
我们使用jQuery的同时也能混合JavaScript原生代码一起使用。
在很多场景中,我们需要jQuery与DOM能够相互的转换,
它们都是可以操作的DOM元素,jQuery是一个类数组对象,
而DOM对象就是一个单独的DOM元素。
● 相比较jQuery转化成DOM,开发中更多的情况是把一个dom对象加工成jQuery对象。$(参数)是一个多功能的方法,通过传递不同的参数而产生不同的作用。
● 如果传递给$(DOM)函数的参数是一个DOM对象,jQuery方法会把这个DOM对象给包装成一个新的jQuery对象。
● 通过$(dom)方法将普通的dom对象加工成jQuery对象之后,我们就可以调用jQuery的方法了。
1.DOM对象转换为jQuery对象
var box = document.getElementById("box");//DOM对象
$(box);//jQuery对象
2.jQuery对象转换为一个DOM对象
var $divs=$("div");//jQuery对象 divs中包含所有的$divs元素
var div=$divs[0];//div为DOM对象
//使用jQuery中的get()方法进行转换,只需要提供一个索引就可以了
var div=$divs.get(0);//将$divs对象中索引为0的元素转换为DOM对象
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQuery对象与JavaScript中的DOM对象</title>
<style>
div {
width: 200px;
height: 200px;
margin-top: 20px;
background: #eba1a1;
}
</style>
</head>
<body>
<div id="box"></div>
<div id="jqBox"></div>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
$(document).ready(function () {
//通过原生的JS代码获取DOM对象
var box = document.getElementById("box");//dom对象
console.log(box);
var jqBox = $(box);//jquery对象
console.log(jqBox);
var $box = $("#jqBox");//jQuery中的对象
//var div = $box[0];//DOM对象
var div = $box.get(0);//DOM对象
console.log(div);
})
</script>
三、jQuery基本选择器
3.0 jQuery选择器
● 页面的任何操作都需要节点的支撑,开发者如何快速高效的找到指定的节点也是前端开发中的一个重点。
● jQuery提供了一系列的选择器帮助开发者可以更少的处理复杂选择过程与性能优化,更多专注业务逻辑的编写。
● jQuery几乎支持主流的css1~css3选择器的写法,我们从最简单的也是最常用的开始学起:
3.1 ID选择器 $("#id");
● id选择器也是基本的选择器,jQuery内部使用JavaScript函数document.getElementById()来处理ID的获取。
● 原生语法的支持总是非常高效的,所以在操作DOM的获取上,如果能采用id的话尽然考虑用这个选择器
● 注意:id是唯一的,每个id值在一个页面中只能使用一次。如果多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。但这种行为不应该发生;有超过一个元素的页面使用相同的id是无效的
3 .2 class选择器 $(".classname");
● 类选择器,相对id选择器来说,效率相对会低一点,但是优势就是可以多选
同样的jQuery在实现上,对于类选择器,如果浏览器支持,jQuery使用 JavaScript的原生getElementsByClassName()函数来实现的。
3.3 element元素选择器 $("标签名称");
●元素选择器,根据给定html标记名称选择所有的元素,搜索指定元素标签名的所有节点,这个是一个合集的操作。同样的也有原生方法getElementsByTagName()函数支持。
3.4 全选择器 $("*");
●全选择器,也就是 *选择器
●在CSS中,经常会在第一行写下这样一段样式 * {padding: 0; margin: 0;}
● 通配符*意味着给所有的元素设置默认的边距。jQuery中我们也可以通过传递*选择器来选中文档页面中的元素。
3 .5 层级选择器
●文档中的所有的节点之间都是有这样或者那样的关系。我们可以把节点之间的关系可以用传统的家族关系来描述,可以把文档树当作一个家谱,那么节点与节点之间就会存在父子,兄弟,祖孙的关系了。
● 选择器中的层级选择器就是用来处理这种关系
子元素 后代元素 兄弟元素 相邻元素
● 通过一个列表,对比层级选择器的区别
选择器 描述
● $("ancestor descendant") 后代选择器:选择给定的祖先元素的所有后代元素,一个元素的后代可能该元素的一个孩子,孙子,曾孙等
● $("parent > child") 子选择器:parent的直接子元素
● $("prev + next") 相邻兄弟选择器:匹配所有紧接在 prev 元素后的 next 元素
● $("prev ~ siblings")一般兄弟选择器:匹配 prev 元素之后的所有 siblings 元素
使用选择器选择对应标签
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQuery基本选择器</title>
<style>
#box {
/*# id选择器*/
width:200px;
}
.wrap {
/*class选择器*/
}
div {
/*元素选择器*/
}
* {
/*通配符 可以选择器所有的页面元素*/
margin:0;
padding:0;
}
.wrap div {
/*层级原则器*/
}
.wrap > div {
/* > 直接子选择器*/
}
#box + div {
background:#ff0000;
}
#box ~ div {
background:#ff00ff;
}
</style>
</head>
<body>
<div id="box">div标签一</div>
<div class="wrap">div标签二</div>
<div class="wrap">
div标签三
<div>内部的div
</div>
<div>内部的div</div>
</div>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
3.1 ID选择器 $("#id");
//通过ID选择器获取元素
var box = $("#box");
console.log(box);
3.2 class选择器 $(".classname");
//通过类选择器获取元素
var wrap = $(".wrap");
console.log(wrap);
3.3 element元素选择器 $("标签名称");
//根据div标签的名称获取所有的div元素
var divs = $("div");
console.log(divs);
3.4 全选择器 $("*")
//输出所有页面元素
var allElement = $("*");
console.log(allElement);
3.5 层级选择器
$("body div");//选择body中的所有div元素
console.log($("body div"));
$("body>div");//选择body中直接的子元素div
console.log($("body>div"));
$("#box+div");//选择div#box紧跟后面的一个元素
console.log($("#box+div"));
$("#box~div");//选择div#box元素的兄弟元素
console.log($("#box~div"));
</script>
四、jQuery中的筛选选择器
4.0 jQuery选择器之基本筛选选择器
● 很多时候我们不能直接通过基本选择器与层级选择器找到我们想要的元素,
为此jQuery提供了一系列的筛选选择器用来更快捷的找到所需的DOM元素。
● 筛选选择器很多都不是CSS的规范,而是jQuery自己为了开发者的便利延展出来的选择器
● 筛选选择器的用法与CSS中的伪元素相似,选择器用冒号":"开头,基本筛选器的描述见 jQuery API文档:
选择器
$(":first") 获取匹配第一个元素 例如:$('li:first');
$(":last") 获取匹配的最后个元素 例如:$('li:last');
$(":not(selector)") 去除所有与给定选择器匹配的元素 例 如:$("input:not(:checked)")
$(":even") 匹配所有索引值为偶数的元素,从 0 开始计数 例如:$("li:even")
$(":odd") 匹配所有索引值为奇数的元素,从 0 开始计数 例如:$("li:odd")
$(":eq(index)") 匹配一个给定索引值的元素,从 0 开始计数 例如:$("li:eq(1)")
$(":gt(index)") 匹配所有大于给定索引值的元素,从 0 开始计数 例如:$("li:gt(0)")
$(":lt(index)") 匹配所有小于给定索引值的元素,从 0 开始计数 例如:$("li:gt(2)")
$(":header") 匹配如 h1, h2, h3之类的标题元素 例如:$(":header").css("background", "#EEE");
$(":animated") 匹配所有正在执行动画效果的元素(只有对不在执行动画效果的元素执行一个动画特效)
例如:$(":header").css("background", "#EEE");
$(":focus") 匹配当前获取焦点的元素。
$(":root") 选择该文档的根元素。在HTML中,文档的根元素,和$(":root")选择的元素一样, 永远是<html>元素。
示例:设置<html>背景颜色为黄色
$(":root").css("background-color","yellow");
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQuery中的筛选选择器 属性选择器</title>
<style>
div:hover {
}
</style>
</head>
<body>
<ul >
<li>列表一</li>
<li>列表二</li>
<li>列表三</li>
<li>列表四</li>
</ul>
<form action="/" method="post">
<input type="checkbox" name="newsletter" value="Hot Fuzz" />
<input type="button" name="newsletter" value="Cold Fusion" />
<input type="text" name="accept" value="Evil Plans" />
<input type="text" name="accept" value="Evil Plans" />
<input type="text" name="accept" value="Evil Plans" />
<input type="text" name="accept" value="Evil Plans" />
</form>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
$(document).ready(function () {
//$("li:first").css("backgroundColor", "red");
//$("li:last").css("backgroundColor", "red");
$("li:even").css("backgroundColor", "red");
$("li:eq(1)").css("backgroundColor", "blue");
var input = $("input[type='text']");
console.log(input);
})
</script>
五、jQuery中的属性操作
5.0 jQuery的属性
● 每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息。
● 如:在img元素中,src就是元素的特性,用来标记图片的地址
● JavaScript中操作特性的DOM方法主要有3个:
1.getAttribute()获取特性
2.setAttribute()设置特性
3.removeAttribute() 移出特性
● 在jQuery中操作特性的jQuery方法:
1.attr() 获取/设置属性
2.removeAttr() 移出属性
● 在jQuery中用一个attr()与removeAttr()就可以全部搞定了,
jQuery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr()
● jQuery中操作属性的方法 :
①.获取或则设置属性attr()
②.移出属性removeAttr(name)
③.获取或则设置属性prop()
④.移出属性removeProp(name)
5.1 attr()与removeAttr()的用法
● attr()方法的用法:
1. $(element).attr("属性名");//获取属性名的属性值
2. $(element).attr("属性","属性值");//设置属性的属性值
3. $(element).attr("属性名","函数值");//设置属性的函数值
4. $(element).attr({"属性名":"属性值","属性名":"属性值"});//给指定元元素设置多个属性值
● removeAttr()方法的用法:
1. $(element).removeAttr("属性名");//移出对应的属性
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQuery中的属性操作</title>
</head>
<body>
<img src="~/Content/images/picture.jpg" alt="这张风景图" id="picture"/>
<div id="box" class="mydiv" ></div>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
window.onload = function () {
//获取元素的src属性
var url = document.getElementById("picture").getAttribute("src");
console.log(url);
//修改alt的属性值
//document.getElementById("picture").setAttribute("alt", "这是通过JS代码动态改写的alt值");
//移出属性
//document.getElementById("picture").removeAttribute("alt");
}
$(document).ready(function () {
///获取元素的src属性
var url = $("#picture").attr("src");
console.log(url);
//修改alt的属性值
$("#picture").attr("alt", "这是通过jQuery代码动态改写的alt值");
//移出属性alt属性
$("#picture").removeAttr("alt");
//同时修改多个属性
$("#box").attr({ "class": "mybox", "index": "1" });
});
</script>
5.2 prop()与removeProp()的用法
● prop()方法的用法:
1. $(element).prop("属性名");//获取属性名的属性值
2. $(element).prop("属性名","属性值");//设置属性的属性值
3. $(element).prop("属性名","函数值");//设置属性的函数值
4. $(element).prop({"属性名":"属性值","属性名":"属性值"});//给指定元素设置多个属性值
● removeProp()方法的用法:
1. $(element).removeProp("属性名"); //移出对应的属性
5.3 Attribute和Property的区别
● Attribute
- attribute是HTML中就有的,是元素的选项|附加项。
例如:id、class、title、src、alt、href
- 值只能为string类型
- 客户端向HTML元素添加的自定义的属性,推荐称为attribute
● Property
- JS DOM中,对象的成员(组成部分),所以可以用JS DOM对象访问property(用对象访问成员)
例如:tagName, nodeName, nodeType, defaultChecked (这几个属性是DOM对象中属性)
- 值类型多样化:property因为是对象的成员,类型可多样化(boolean, string, number等)
- 如果获取DOM对象中的属性,推荐使用property
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQuery中的属性操作</title>
</head>
<body>
<img src="~/Content/images/picture.jpg" alt="这张风景图" id="picture"/>
<div id="box" class="mydiv" ></div>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
$(document).ready(function () {
//box DOM对象
//var box = document.getElementById("box");
//box.nodeName
//box.nodeType
var nodeName = $("#box").prop("nodeName");
console.log(nodeName);
var id = $("#box").prop("id");
var index = $("#box").prop("index");//prop()不能获取自定义属性
console.log(id);
console.log(index);
var url = $("#picture").prop("src");
console.log(url);
})
</script>
六、jQuery中操作属性的方法
6.0 jQuery属性 动态操作class
● 1. $(element).addClass();//为每个匹配元素所要增加的一个或多个样式名
- 方法不会替换一个样式类名。它只是简单的添加一个样式类名到元素上
● 2. $(element).removeClass();//每个匹配元素移除的一个或多个用空格隔开的样式名
● 3. $(element).toggleClass();
//在匹配的元素集合中的每个元素上添加或删除一个或多个样式类,
取决于这个样式类是否存在或值切换属性。即:如果存在(不存在)就删除(添加)一个类
JavaScript中通过className属性来动态的操作class类:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQueryOPclass</title>
<link href="~/Content/bootstrap-4.1.3-dist/css/bootstrap.min.css" rel="stylesheet" />
<style>
.container > div {
width: 400px;
height: 200px;
margin: 20px 0;
}
.bgPink {
background-color: #e98989;
}
.bgGreen {
background-color: #0d662c;
}
.fontStyle {
color: #fff;
font-size: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div class="bgPink" id="box">box盒子</div>
<button class="btn btn-outline-success" onclick="addClassFun()">addClass</button>
<button class="btn btn-outline-success" onclick="removeClassFun()">removeClass</button>
<button class="btn btn-outline-success" onclick="toggleClassFun()">toggleClass</button>
</div>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
//添加类
function addClassFun() {
$("#box").addClass("bgGreen");//给div动态的添加bgGreen的类
//如果添加多个类,每个类之间用空格隔开
$("#box").addClass("bgGreen fontStyle");
//document.getElementById("#box").className;
}
//移出类
function removeClassFun() {
$("#box").removeClass("bgGreen");
//如果移出多个类,每个类之间用空格隔开
$("#box").removeClass("bgGreen fontStyle");
}
//如果有bgGreen类则移出,如果没有则添加bgGreen类
function toggleClassFun() {
//$("#box").toggleClass("bgGreen");
$("#box").toggleClass("bgGreen fontStyle");
}
</script>
6.1 jQuery属性的.html()与.text()方法
● 读取、修改元素的html结构或者元素的文本内容是常见的DOM操作,
JavaScript中提供innerHTML与innerText属性;
jQuery针对这样的处理提供了2个便捷的方法.html()与.text() .
6.2 $(element).html()方法
获取集合中第一个匹配元素的HTML内容 或 设置每一个匹配元素的html内容.
1. $(element).html() 获取element元素的HTML内容
2. $(element).html("htmlString") 为每一个匹配元素添加html内容
重要说明:$(element) .html()方法内部使用的是DOM的innerHTML属性来处理的,所以在设置与获取上需要注意的一个最重要的问题,这个操作是针对整个HTML内容(不仅仅只是文本内容)
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQueryhtmltextval</title>
</head>
<body>
<div>div1元素<b>sdfsdfsdfsf</b></div>
<div>div2元素</div>
<input type="text" name="name" value="123123123123" />
<select>
<option>选项一</option>
<option>选项二</option>
<option>选项三</option>
</select>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
$(document).ready(function () {
var strhtml = $("div").html();
console.log(strhtml);
// $("div").html("<p>通过jQuery中的html()方法添加的P标签</p>");
var strText = $("div").text();
console.log(strText);
$("div").text("通过jQuery中的text()方法添加的P标签")
})
</script>
6.3 $(element).text()方法
● 得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,
或设置匹配元素集合中每个元素的文本内容为指定的文本内容。
1. $(element).text() 获取element元素的文本内容;
2. $(element).text("textString") 用于设置匹配元素内容的文本.
6.4 $(element).html()与 $(element).text()之间的差异
● html与.text的异同:
1.html与.text的方法操作是一样,只是在具体针对处理对象不同
2.html处理的是元素内容,.text处理的是文本内容
3.html只能使用在HTML文档中,.text 在XML 和 HTML 文档中都能使用
如果处理的对象只有一个子文本节点,那么html处理的结果与text是一样的
火狐不支持innerText属性,用了类似的textContent属性,.text()方法综合了2个属性的支持,所以可以兼容所有浏览器
6.5 jQuery属性的val()方法
● $(ele).val()方法主要是用于处理表单元素的值,比如 input, select 和 textarea。
//JavaScript中的value属性
1. $(ele).val() 获取匹配的元素集合中第一个元素的当前值
2. $(ele).val(value) 设置匹配的元素集合中每个元素的值
● 通过$(ele).val()处理select元素, 当没有选择项被选中,它返回null
$(ele).val()方法多用来设置表单的字段的值;
如果select元素有multiple(多选)属性,并且至少一个选择项被选中,
$(ele).val()方法返回一个数组,这个数组包含每个选中选择项的值.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQueryhtmltextval</title>
</head>
<body>
<div>div1元素<b>sdfsdfsdfsf</b></div>
<div>div2元素</div>
<input type="text" name="name" value="123123123123" />
<select>
<option>选项一</option>
<option>选项二</option>
<option>选项三</option>
</select>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.min.js"></script>
<script>
//ready方法的简写形式
$(function () {
var str = $("input[type='text']").val();
console.log(str);
$("input[type='text']").val("通过jQuery中的val方法动态赋值");
var op = $("select").val();
console.log(op);
});
</script>
6.6 jQuery中操作属性的方法
①html() 取得第一个匹配元素的html内容
②text() 取得所有匹配元素的内容
③val() 获得匹配元素的当前value值
七、jQuery中操作样式的方法
jQuery中操作样式的方法:
①css()访问匹配元素的样式属性;
②width() 取得匹配元素当前计算的宽度值(px)。
③height() 取得匹配元素当前计算的高度值(px)。
7.0 jQuery样式操作$(element).css()方法
●通过JavaScript获取DOM元素上的style属性,我们可以动态的给元素赋予样式属性。
●在jQuery中我们要动态的修改style属性我们只要使用css()方法就可以实现了:$(element).css()方法:获取元素样式属性的计算值或者设置元素的CSS属性
7.1 $(element).css()方法使用方法
1. $(element).css("属性名") //获取匹配元素集合中的第一个元素的样式属性的计算值
2. $(element).css(["属性名1","属性名2"]) //传递一个数组,返回一个对象结果
3. $(element).css("属性","属性值") //设置元素的css样式
4. $(element).css({"属性1":"属性值1","属性2":"属性值2"}) //可以传一个对象,同时设置多个样式
5. $(element).css({属性名,function}) //可以传入一个回调函数,返回取到对应的值进行处理
7.2 注意事项
● 浏览器属性获取方式不同,在获取某些值的时候都jQuery采用统一的处理,比如颜色采用RBG,尺寸采用px
● $(element).css()方法支持驼峰写法与大小写混搭的写法,内部做了容错的处理
● 当一个数只被作为值(value)的时候,jQuery会将其转换为一个字符串,并添在字符串的结尾处添加px,
● 例如 .css("width",50}) 与 .css("width","50px"})一样
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>jQuery样式</title>
<link href="~/Content/bootstrap-4.1.3-dist/css/bootstrap.min.css" rel="stylesheet" />
<style>
.box {
width: 200px;
height: 200px;
padding: 20px;
border: 10px solid #ccc;
margin: 20px auto;
background: #f54848;
}
</style>
</head>
<body>
<div class="box">box </div>
<div class="box" style="width:300px;">box </div>
<script src="~/Content/bootstrap-4.1.3-dist/js/jquery-3.2.1.js"></script>
<script>
$(document).ready(function () {
//js中给元素添加点击事件
/*var div = document.getElementsByClassName("box");
for (var i = 0; i <div.length; i++) {
div[i].onclick = function () {
}
}*/
//jquery中给元素添加点击事件
$(".box").click(function () {
//alert("box的点击事件");
//1.获取匹配元素集合中的第一个元素的样式属性的计算值
var width = $(".box").css("width");
var width1 = $(this).css("width");
console.log(width1);//this
// console.log(width);
//2.传递一个数组,返回一个对象结果
var styleObj = $(this).css(["width", "height"]);
console.log(styleObj);
console.log(styleObj.height);
//3.设置元素的css样式
$(".box").css("backgroundColor", "green");
//4.可以传一个对象,同时设置多个样式
$(".box").css({ "color": "#fff", "font-size": 20, "textAlign": "center", "width": "300px" });
//5.可以传入一个回调函数,返回取到对应的值进行处理
$(this).css({
height: function (index, value) {
console.log(index);
console.log(value);
return parseFloat(value) * 1.5;
}
})
});
});
</script>