一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第18天,点击查看活动详情。
jQuery简单操作
嗨嗨害!我又来水文了
1. jQuery属性操作
公共结构:
<a href="http://www.baidu.com/" title="哈喽">123</a>
<input type="checkbox" checked>
<div index="1" data-index="123">hello</div>
<span>123</span>
① 设置或获取元素固有属性值
所谓元素固有属性就是元素本身自带的属性,比如<a>元素里面的href,比如<input>元素里面的type
获取属性语法prop("属性")
console.log($("a").prop("href"));// http://www.baidu.com
$("input").change(function () {
console.log($(this).prop("checked")); // 这里点击后获取复选框的状态 false
})
设置属性语法prop("属性","属性值")
$("a").prop("title", "hello world");
② 设置或获取自定义属性值
获取属性语法attr("属性") 类似原生的getAttribute()
console.log($("div").attr("index")); // 1
设置属性语法attr("属性","属性值") 类似原生的setAttribute()
$("div").attr("index", 2);
③ 其他设置或获取属性值的方法
数据缓存data( )
data( )方法可以在指定的元素的内存中存取数据,并不会修改DOM元素结构。一但页面刷新,之前存放的数据都将被移除
$("span").data("uname", "luffy");
并不会改变DOM元素结构,相当于把这个元素当作变量来看了,把值存到了这个元素里边去
获取刚刚存进去的值
console.log($("span").data("uname")); // luffy
这个方法还可以获取data-index (H5自定义属性) 不用写data-
console.log($("div").data("index")); // 123
2. jQuery内容文本值
公共结构
<div>
<span>我是内容</span>
</div>
<input type="text" value="请输入内容">
① 获取与设置元素内容 html()
普通元素内容html() 相当于原生js中的innerHTML
html( )获取元素内容, html("内容")设置元素内容
console.log($("div").html()); //这种方法能把标签也显示出来
$("div").html("1234");
② 获取与设置元素文本内容 text()
普通元素文本内容text() 相当于原生js中的innerText
text() 获取元素内容, text("内容") 设置元素文本内容
console.log($("div").text()); // 1234
$("div").text("123");
③ 获取与设置表单值 val()
获取和设置表单的值val() 相当于原生的value
console.log($("input").val());
$("input").val("123321");
3. jQuery遍历元素
在jQuery中,jQuery隐式迭代是对同一类元素做了同样的操作。如果想给同一类元素做不同操作,就需要用到遍历
语法1: $("div").each(function(index,domEle){ xxx; })
each( )方法遍历匹配的每一个元素。
里面的回调函数有2个参数: index是每个匹配到的元素的索引号; demEle是每个DOM元素对象,不是jQuery对象,所以要使用这个方法,需要给这个dom元素转换为jQuery对象$(domEle)
<div>1</div>
<div>2</div>
<div>3</div>
var sum = 0;
var arr = ["red", "green", "blue"];
$("div").each(function (i, domEle) {
// 回调函数第一个参数一定是索引号 可以自己指定索引号号名称
// console.log(index); 0 1 2
// console.log(i); 0 1 2
// 回调函数第二个参数一定是 dom元素对象 也是自己命名
// console.log(domEle); 输出了匹配到的每一个元素(带标签的)
// domEle.css("color"); dom对象没有css方法
$(domEle).css("color", arr[i]);
sum += parseInt($(domEle).text());
})
console.log(sum); // 6
语法2: $.each(object,function(index,element){ xxx; })
$.each()方法可用于遍历任何对象。主要用于数据处理,比如数组、对象
回调函数中的两个参数,index是每个元素的索引号,element是遍历的内容
$.each($("div"), function(i, ele) {
console.log(i); 0 1 2
console.log(ele); 输出的也是带标签的匹配到的元素
});
// 主要用来处理数据
$.each(arr, function(i, ele) {
console.log(i); 0 1 2
console.log(ele); // red green blue
})
$.each({
name: "luffy",
age: 18
}, function (i, ele) {
console.log(i); // 输出的是 name age 属性名
console.log(ele); // 输出的是 luffy 18 属性值
})
})
4. 创建添加删除元素
公共结构
<ul>
<li>原先的li</li>
</ul>
<div class="test">我是原先的div</div>
① 创建元素
语法: $("<标签>内容</标签>") 动态创建元素
var li = $("<li>我是后来创建的li</li>");
② 添加元素
仅创建没有用,需要添加进去。
内部添加: 添加后是父子关系
// $("ul").append(li); 内部添加并且放到内容的最后面
$("ul").prepend(li); // 内部添加并且放到内容的最前面
外部添加 添加后是兄弟关系:
var div = $("<div>我是后妈生的</div>");
// $(".test").after(div); 把内容放入目标元素的后面
$(".test").before(div); //把内容放入目标元素的前面
删除元素
// $("ul").remove(); 可以删除匹配的元素本身
// $("ul").empty(); // 可以删除匹配的元素里面的子节点
$("ul").html(""); // 清空匹配的元素的内容 与上面那个方法是一样的
ul被清空了