jQuery选择器和对DOM的操作

一、jQuery选择器

1.基本选择器

  • 元素选择器,语法$("html标签名"),例:查找所有div下span元素的个数 $("div,span").size();

  • id选择器,语法 $("#id的属性值"),例:查找Id为"div1"的元素个数 $("#div1").size();

  • 类选择器,语法 $(".class的属性值"),例:查找所有样式是"class1"的元素的个数 $(".class1").size();

2.层次选择器

选择器名称语法解释
后代选择器$("A B")选择A元素内部的所有B元素
子选择器$("A > B")选择A元素内部的所有子B元素
  • 改变<body>内所有<div>的背景色为红色:$("body div").css("background-color","red");

  • 改变<body>内子<div>的背景色为红色:$("body > div").css("background-color","red");

  • 改变id为one的下一个<div>的背景色为红色:$("#one + div").css("background-color","red");

3. 属性选择器

选择器名称语法解释
属性选择器$("A[属性名]")包含指定属性的选择器
属性选择器$("A[属性名=值]")包含指定属性等于指定值的选择器
复合属性选择器$("A[属性名=值] [属性名=值]...")包含多个属性条件的选择器
  • 查找所有含有id属性的div元素个数:$("div[id]").size();

  • 查找所有name属性是newsletter的input元素,并将其选中:$("input[name='newsletter']").attr("checked","checked");

  • 查找所有含有属性id且属性title值包含"es"的div元素,并将背景色改为红色:$("div[id][title*='es']").css("background-color","red");


4. 基本过滤选择器

选择器名称语法解释
首元素选择器:first获得选择的元素中的第一个元素
尾元素选择器:last获得选择的元素中的最后一个元素
非元素选择器:not(selecter)不包括指定内容的元素
等于索引选择器:eq(index)指定索引元素
偶数选择器:even偶数,从0开始计数
奇数素选择器:odd奇数,从1开始计数
1)查找UL中第一个元素li和最后一个元素li的内容  
	$("ul li:first").text(); 
	$("ul li:last").text();     

2)查找所有选中未选中的input元素个数  
	$(":checkbox:not(:checked)").size();  //未选中  
     
3)查找表格中第二行的内容,从索引号0开始  
    $("table tr:eq(1)").text();  
    //html()强调的是标签中的内容,如果标签中有子标签,则会显示出来,而text()强调的是标签
    //中的文本内容,不会显示子标签

4)点击表格第二列
	$("#table1 td:eq(1)").click();  

5)改变索引值为偶数的 div 元素的背景色为红色
    $("div:even").css("background-color","red");

6)改变索引值为奇数的 div 元素的背景色为 红色
    $("div:odd").css("background-color","red");

5. 表单属性过滤选择器

选择器名称语法解释
可用元素选择器:enabled获得可用元素
不可用元素选择器:disabled获得不可用元素
选中选择器:checked获得 单选/复选框 选中的元素
选中索引选择器:selected获得下拉框选中的元素
<script type="text/javascript">
// <input type="button" value=" 利用 jQuery 对象的 val() 方法改变表单内可用 <input> 元素的值"  
$("#b1").click(function () {   
  
   //表单元素有2个不可编辑的属性
   //disabled,不可用,不可编辑并且背景色为灰色,这个表单元素不提交给服务器
   //readyonly,只读,不可编辑并且背景色为白色,会提交数据给到服务器。

   //获取文本框的选择器有2两种:
   //第一种:$("input[type='text']")
   //第二种:$(":text")
    $(":text:enabled").val("设置input标签的value值");
});

// <input type="button" value=" 利用 jQuery 对象的 val() 方法改变表单内不可用 <input> 元素的值"  id="b2"/>
$("#b2").click(function () {
    $(":text:disabled").val("设置input标签的value值");

});

// <input type="button" value=" 利用 jQuery 对象的 length 属性获取多选框选中的个数"  id="b3"/>
$("#b3").click(function () {
    //jq对象.length属性,获取符合的标签元素的个数,jq对象本质就是js对象数组
    //alert($("input[type='checkbox']:checked").length);
    alert($(":checkbox:checked").length);
});

// <input type="button" value=" 利用 jQuery 对象的 text() 方法获取下拉框选中的内容"  id="b4"/>
$("#b4").click(function () {
    //jq对象.text([value]);//获取或设置标签体文本内容,text()相当于js对象的innerText
    alert($("select > option:selected").text());
});
</script>

二、jQuery的DOM操作

1. jQuery对DOM树中的文本和值进行操作

API方法解释
text([value])获得/设置元素的文本内容
html([value])获得/设置元素的标签体的所有内容
val([value])获得/设置表单元素value属性相应的值

2. jQuery对DOM树中的属性进行操作

API方法解释
attr(name[,value])获得/设置属性的值
prop(name[,value])获得/设置属性的值(checked,selected)
removeAttr(name)删除指定的属性
<ul>
   <li id="bj" name="beijing" xxx="yyy">北京</li>
   <li id="tj" name="tianjin">天津</li>
</ul>
<input type="checkbox" id="hobby"/>

//获取北京节点的name属性值
alert($("#bj").attr("name"));

//设置北京节点的name属性的值为dabeijing
$("#bj").attr("name","dabeijing");

//新增北京节点的description属性 属性值是didu
$("#bj").attr("description","didu");

//删除北京节点的name属性并检验name属性是否存在
$("#bj").removeAttr("name");

//获得hobby的的选中状态
//alert($("#hobby").attr("checked"));//不行
alert($("#hobby").prop("checked"));//false,代表没有选中

//attr适合操作一般大多数属性,prop适合获取操作属性值为boolean的属性
//设置复选框选中
$("#hobby").prop("checked",true);
$("#hobby").attr("checked",true);

3. jQuery对class进行操作

API方法解释
css("样式名","样式值"])获取/设置指定的CSS样式
addClass(类样式名)给指定的对象添加新的类样式,指定类样式名字即可
removeClass(类样式名)删除指定的类样式
toggleClass(类样式名)切换样式,如果没有类样式,则添加,如果有类样式,则删除
hasClass (类样式名)判断是否有类样式名
// <input type="button" value="给id为one设置属性class的值为second"  id="button1"/>
$("#button1").click(function () {
    //设置样式
    $("#one").attr("class","second");
    $("#one").addClass("second");
    //移除样式
    $("#one").removeClass("second");
    //切换样式
    $("#one").toggleClass("second");
});

//  <input type="button" value=" 通过css()获得id为one背景颜色" id="button2"/>
$("#button2").click(function () {
   alert($("#one").css("background-color"));
});
//  <input type="button" value=" 通过css()设置id为one背景颜色为绿色" id="button3"/>
$("#button3").click(function () {
   $("#one").css("background-color","green");
});

4. jQuery创建插入对象

API方法解释
$("<A></A>")创建A元素对象
append(element)父标签.append(最后一个子标签),添加成最后一个子元素,两者之间是父子关系
prepend(element)父标签.prepend(第一个子标签),添加成第一个子元素,两者之间是父子关系
before(element)当前标签.before(兄弟标签),添加到当前元素的前面,两者之间是兄弟关系
after(element)当前标签.after(兄弟标签),添加到当前元素的后面,两者之间是兄弟关系

5. jQuery删除对象

API方法解释
remove()删除指定元素
empty()清空指定元素的所有子元素
/*删除标签2种方式
*   jq对象.remove()  自杀,将自己干掉删除
*   jq对象.empty()   清空子元素
* */

//删除<li id="bj" name="beijing">北京</li>
$("#bj").remove();
//删除所有的子节点   清空元素中的所有后代节点(不包含属性节点)
$("#city").empty();

6. jQuery效果

1.隐藏显示HTML元素
	$("p").hide()
	$("p").show()    style="display:none;"
			display:block是将对象块状化;display:none是不显示

  切换隐藏显示
	$("p").toggle()

2.淡入淡出HTML元素
淡入:
	$("#div1").fadeIn();
    $("#div1").fadeIn("slow");
    $("#div1").fadeIn(3000);

淡出:
    $("#div1").fadeOut();
    $("#div1").fadeOut("slow");
    $("#div1").fadeOut(3000);

三、jQuery遍历函数

1. jQuery祖先

  • parent():返回被选元素的直接父元素
  • parents():返回被选元素的所有祖先元素,一路向上直到文档的根元素 (<html>)
  • parentsUntil():返回介于两个给定元素之间的所有祖先元素
$("span").parent();  //返回每个 <span> 元素的的直接父元素
$("span").parents("ul");   //返回所有 <span> 元素的所有祖先<ul>元素
$("span").parentsUntil("div"); //返回介于<span>与<div>元素之间的所有祖先元素

2. jQuery后代

  • children():返回被选元素的所有直接子元素
  • find():返回被选元素的后代元素,一路向下直到最后一个后代
$("div").children();    //返回每个 <div> 元素的所有直接子元素
$("div").find("span");  //返回属于 <div> 后代的所有 <span> 元素	

3. jQuery同胞

  • siblings():返回被选元素的所有同胞元素
  • next():获得匹配元素集合中每个元素紧邻的同辈元素
  • nextAll():获得匹配元素集合中每个元素之后的所有同辈元素
  • prev():获得匹配元素集合中每个元素紧邻的前一个同辈元素
  • prevAll():获得匹配元素集合中每个元素之前的所有同辈元素
$("h2").siblings();  //返回 <h2> 的所有同胞元素

$("#div1").next();  //返回 <div> 的下一个同胞元素(只返回一个元素)
$("div2").nextAll();  //返回 <div> 的所有跟随的同胞元素
$("h1").nextUntil("h3");  //返回介于 <h1> 与 <h3> 元素之间的所有同胞元素

prev(),prevAll()以及prevUntil()方法的工作方式与next()方法类似,只不过方向相反而已,它们返回的是前面的同胞元素

4. jQuery遍历(过滤)

  • first():返回被选元素集合的第一个元素
  • last():返回被选元素集合的最后一个元素
  • eq():返回被选元素中带有指定索引号的元素(索引号从0开始)
$("div p").first();  //获得 <div> 元素内部的第一个 <p> 元素
$("div p").last();   //选择 <div> 元素中的最后一个 <p> 元素
$("p").eq(1);        //选取第二个 <p> 元素 

参考:jQuery遍历函数参考手册

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值