JavaWeb——jQuery的常用操作(1)

jQuery简介

含义:jQuery,是简化了的JavaScript,也就是JavaScript 和查询(Query),它就是辅助JavaScript 开发的js 类库。

核心思想:write less,do more(写得更少,做得更多),所以它实现了很多浏览器的兼容问题。

jQuery的核心函数 $()

使用jQuery之前一定要引入jQuery库

<script type=“text/javascript” src=“jquery-1.7.2.js”></script>

jQuery文档就绪事件(入口函数):
第一种方式:
$(document).ready(function(){

});
第二种方式(也是第一种方式的简写):
$(function(){

});

js入口函数:
window.onload = function () {

}

jQuery入口函数和js入口函数的区别:

window.onload$(document).ready()
执行时机创建好DOM对象和页面显示的内容(图片,网页链接等)创建好DOM 对象之后
执行顺序后执行先执行
执行次数至多一次(因为会被覆盖)可以多次

$()函数的常用参数

  1. 传入参数为[ 函数] 时:
    表示页面加载完成之后。相当于window.onload = function(){}
  2. 传入参数为[ HTML 字符串] 时:
    会对我们创建这个html 标签对象
  3. 传入参数为[ 选择器字符串] 时:
    $(“#id 属性值”); id 选择器,根据id 查询标签对象
    $(“标签名”); 标签名选择器,根据指定的标签名查询标签对象
    $(“.class 属性值”); 类型选择器,可以根据class 属性查询标签对象
  4. 传入参数为[ DOM 对象] 时:
    会把这个DOM 对象转换为jQuery 对象
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
    <script type="text/javascript">

        //核心函数的4个常用操作
        //1.传入参数为[函数]时:在文档加载完成后执行这个函数
        $(function () {
            //2.传入参数为[HTML字符串]时:根据这个字符串创建元素节点对象
            alert("页面加载完成之后自动调用");
            $("<div>" +
                "        <span>div-span1</span>" +
                "        <span>div-span2</span>" +
                "    </div>").appendTo("body");

            //3.传入参数为[选择器字符串]时:根据这个字符串查找元素节点对象
            alert($("button").length);
            
			//通过id得到dom对象
            var btnObj = document.getElementById('btn01');
            alert(btnObj);//[object HTMLButtonElement] DOM对象
            //4.传入参数为[DOM对象]时:将DOM对象包装为jQuery对象返回
            alert($(btnObj));//[object Object] jQuery对象
            // alert($("<h1></h1>"))//[object Object] jQuery对象
            alert($("#button"));//[object Object] jQuery对象

        });
    </script>

jQuery对象

jQuery 对象是dom 对象的数组+ jQuery 提供的一系列功能函数。

jQuery 对象不能使用DOM 对象的属性和方法
DOM 对象也不能使用jQuery 对象的属性和方法

jQuery对象和DOM对象的相互转换:

  1. dom 对象转化为jQuery 对象
    $( DOM 对象) 就可以转换成为jQuery 对象
  2. jQuery 对象转为dom 对象
    jQuery 对象[下标]取出相应的DOM 对象

DOM对象转换为jQuery对象,然后再通过下标转换为DOM对象的示例:

alert($(document.getElementById(“testDiv”))[0]);

jQuery 选择器

基本选择器

#ID 选择器根据id 查找标签对象
.class 选择器根据class 查找标签对象
element 选择器根据标签名查找标签对象
* 选择器表示任意的,所有的元素
selector1,selector2 组合选择器合并选择器1,选择器2 的结果并返回

层级选择器

ancestor descendant 后代选择器在给定的祖先元素下匹配所有的后代元素
parent > child 子元素选择器在给定的父元素下匹配所有的子元素
prev + next 相邻元素选择器匹配所有紧接在prev 元素后的next 元素
prev ~ sibings 之后的兄弟元素选择器匹配prev 元素之后的所有siblings 元素

过滤选择器

基本过滤器

:first获取第一个元素
:last获取最后个元素
:not(selector)去除所有与给定选择器匹配的元素
:even匹配所有索引值为偶数的元素,从0 开始计数
:odd匹配所有索引值为奇数的元素,从0 开始计数
:eq(index)匹配一个给定索引值的元素
:gt(index)匹配所有大于给定索引值的元素
:lt(index)匹配所有小于给定索引值的元素
:header匹配如h1, h2, h3 之类的标题元素
:animated匹配所有正在执行动画效果的元素

内容过滤器

:contains(text)匹配包含给定文本的元素
:empty匹配所有不包含子元素或者文本的空元素
:parent匹配含有子元素或者文本的元素
:has(selector)匹配含有选择器所匹配的元素的元素

用法示例:

<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
        /**
         :contains(text)
         :empty
         :has(selector)
         :parent
         */
        $(document).ready(function () {
            //1.选择 含有文本 'di' 的 div 元素
            $("#btn1").click(function () {
                $("div:contains(di)").css("background", "#bbffaa");
            });

            //2.选择不包含子元素(或者文本元素) 的 div 空元素
            $("#btn2").click(function () {
                $("div:empty").css("background", "#bbffaa");
            });

            //3.选择含有 class 为 mini 元素的 div 元素
            $("#btn3").click(function () {
                $("div:has(.mini)").css("background", "#bbffaa");
            });

            //4.选择含有子元素(或者文本元素)的div元素
            $("#btn4").click(function () {
                $("div:parent").css("background", "#bbffaa");
            });
        });
    </script>

属性过滤器

[attribute]匹配包含给定属性的元素。
[attribute=value]匹配给定的属性是某个特定值的元素
[attribute!=value]匹配所有不含有指定的属性,或者属性不等于特定值的元素。
[attribute^=value]匹配给定的属性是以某些值开始的元素
[attribute$=value]匹配给定的属性是以某些值结尾的元素
[attribute*=value]匹配给定的属性是以包含某些值的元素
[attrSel1][attrSel2][attrSelN]复合属性选择器,需要同时满足多个条件时使用。

用法示例:

<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
    <script type="text/javascript">
        $(function () {
            //1.选取含有 属性title 的div元素
            $("#btn1").click(function () {
                $("div[title]").css("background", "#bbffaa");
            });
            //2.选取 属性title值等于'test'的div元素
            $("#btn2").click(function () {
                $("div[title='test']").css("background", "#bbffaa");
            });
            //3.选取 属性title值不等于'test'的div元素(*没有属性title的也将被选中)
            $("#btn3").click(function () {
                $("div[title!='test']").css("background", "#bbffaa");
            });
            //4.选取 属性title值 以'te'开始 的div元素
            $("#btn4").click(function () {
                $("div[title^='te']").css("background", "#bbffaa");
            });
            //5.选取 属性title值 以'est'结束 的div元素
            $("#btn5").click(function () {
                $("div[title$='est']").css("background", "#bbffaa");
            });
            //6.选取 属性title值 含有'es'的div元素
            $("#btn6").click(function () {
                $("div[title*='es']").css("background", "#bbffaa");
            });

            //7.首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素
            $("#btn7").click(function () {
                $("div[id][title*='es']").css("background", "#bbffaa");
            });
            //8.选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素
            $("#btn8").click(function () {
                $("div[title][title!='test']").css("background", "#bbffaa");
            });
        });
    </script>

表单过滤器

:input匹配所有input, textarea, select 和button 元素
:text匹配所有文本输入框
:password匹配所有的密码输入框
:radio匹配所有的单选框
:checkbox匹配所有的复选框
:submit匹配所有提交按钮
:image匹配所有img 标签
:reset匹配所有重置按钮
:button匹配所有input type=button 按钮
:file匹配所有input type=file 文件上传
:hidden匹配所有不可见元素display:none 或input type=hidden

表单对象过滤器

:enabled匹配所有可用元素
:disabled匹配所有不可用元素
:checked匹配所有选中的单选,复选,和下拉列表中选中的option 标签对象
:selected匹配所有选中的option

在遍历的function函数中,有一个this对象,这个this对象,就是遍历到的dom对象
在遍历中体会this的用法:

<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
		$(function(){		
			//1.对表单内 可用input 赋值操作
			$("#btn1").click(function(){
				//val()可以操作表单项的value属性值
				//它可以设置和获取
				$(":text:enabled").val("可用的框框");
			});
			//2.对表单内 不可用input 赋值操作
			$("#btn2").click(function(){
				$(":text:disabled").val("不可用,也能用,气不气?");
			});
			//3.获取多选框选中的个数  使用size()方法获取选取到的元素集合的元素个数
			$("#btn3").click(function(){
				// alert($(":checkbox:checked").size())//和length属性一样
				alert($(":checkbox:checked").length)
			});
			
			//4.获取多选框,每个选中的value值
			$("#btn4").click(function(){
				//获取全部选中的复选框标签对象
				var $checkboies = $(":checkbox:checked");
				
				//老式遍历
				for (var i = 0; i < $checkboies.length; i++) {
				 	alert($checkboies[i].value);
			 	}

				//each方法是jQuery对象提供的用来遍历元素的方法
				//在遍历的function函数中,有一个this对象,这个this对象,就是遍历到的dom对象
				$checkboies.each(function (){
							alert(this.value);
				});

			});
			//5.获取下拉框选中的内容  
			$("#btn5").click(function(){
				//获取选中的option标签对象
				var $options = $("select option:selected");
				//遍历,获取option标签中的文本内容
				$options.each(function(){
					//在each遍历时的function	函数中,有一个this对象,这个this对象是当前正在遍历的dom对象
					alert(this.innerHTML);
				});
			});
		})	
</script>

表单对象操作选择框:

<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
    <script type="text/javascript">
        $(function () {
            //批量操作单选
            $(":radio").val(["radio2"]);
            //批量操作复选框的选中状态
            $(":checkbox").val(["checkbox1","checkbox2"]);
            //批量操作多选的下拉框选中状态
            $("#multiple").val(["mul2","mul4"]);
            
             //操作单选的下拉框选中状态
            $("#single").val(["sin2"]);

            $(":radio,:checkbox,#multiple,#single").val(["radio2", "checkbox1", "mul4", "sin3"]);
        });
    </script>

jQuery元素筛选

eq()获取给定索引的元素
first()获取第一个元素
last()获取最后一个元素
filter(exp)留下匹配的元素
is(exp)判断是否匹配给定的选择器,只要有一个匹配就返回true
has(exp)返回包含有匹配选择器的元素的元素
not(exp)删除匹配选择器的元素
children(exp)返回匹配给定选择器的子元素
find(exp)返回匹配给定选择器的后代元素
next()返回当前元素的下一个兄弟元素
nextAll()返回当前元素后面所有的兄弟元素
nextUntil()返回当前元素到指定匹配的元素为止的后面元素
parent()返回父元素
prev(exp)返回当前元素的上一个兄弟元素
prevAll()返回当前元素前面所有的兄弟元素
prevUnit(exp)返回当前元素到指定匹配的元素为止的前面元素
siblings(exp)返回所有兄弟元素
add()把add 匹配的选择器的元素添加到当前jquery 对象中

用法示例:(差别不大,筛选的元素.方法)

 <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //(1)eq()  选择索引值为等于 3 的 div 元素
            $("#btn1").click(function () {
                $("div").eq(3).css("background-color", "#bfa");
            });
            //(2)first()选择第一个 div 元素
            $("#btn2").click(function () {
                //first()   选取第一个元素
                $("div").first().css("background-color", "#bfa");
            });
            //(3)last()选择最后一个 div 元素
            $("#btn3").click(function () {
                //last()  选取最后一个元素
                $("div").last().css("background-color", "#bfa");
            });
            //(4)filter()在div中选择索引为偶数的
            $("#btn4").click(function () {
                //filter()  过滤   传入的是选择器字符串
                $("div").filter(":even").css("background-color", "#bfa");
            });
            //(5)is()判断#one是否为:empty或:parent
            //is用来检测jq对象是否符合指定的选择器
            $("#btn5").click(function () {
                alert($("#one").is(":empty"));
            });

            //(6)has()选择div中包含.mini的
            $("#btn6").click(function () {
                //has(selector)  选择器字符串    是否包含selector
                $("div").has(".mini").css("background-color", "#bfa");
            });
            //(7)not()选择div中class不为one的
            $("#btn7").click(function () {
                //not(selector)  选择不是selector的元素
                $("div").not('.one').css("background-color", "#bfa");
            });
            //(8)children()在body中选择所有class为one的div子元素
            $("#btn8").click(function () {
                //children()  选出所有的子元素
                $("body").children("div.one").css("background-color", "#bfa");
            });


            //(9)find()在body中选择所有class为mini的div元素
            $("#btn9").click(function () {
                //find()  选出所有的后代元素
                $("body").find("div.mini").css("background-color", "#bfa");
            });
            //(10)next() #one的下一个div
            $("#btn10").click(function () {
                //next()  选择下一个兄弟元素
                $("#one").next("div").css("background-color", "#bfa");
            });
            //(11)nextAll() #one后面所有的span元素
            $("#btn11").click(function () {
                //nextAll()   选出后面所有的元素
                $("#one").nextAll("span").css("background-color", "#bfa");
            });
            //(12)nextUntil() #one和span之间的元素
            $("#btn12").click(function () {
                //
                $("#one").nextUntil("span").css("background-color", "#bfa")
            });
            //(13)parent() .mini的父元素
            $("#btn13").click(function () {
                $(".mini").parent().css("background-color", "#bfa");
            });
            //(14)prev() #two的上一个div
            $("#btn14").click(function () {
                //prev()  
                $("#two").prev("div").css("background-color", "#bfa")
            });
            //(15)prevAll() span前面所有的div
            $("#btn15").click(function () {
                //prevAll()   选出前面所有的元素
                $("span").prevAll("div").css("background-color", "#bfa")
            });
            //(16)prevUntil() span向前直到#one的元素
            $("#btn16").click(function () {
                //prevUntil(exp)   找到之前所有的兄弟元素直到找到exp停止
                $("span").prevUntil("#one").css("background-color", "#bfa")
            });
            //(17)siblings() #two的所有兄弟元素
            $("#btn17").click(function () {
                //siblings()    找到所有的兄弟元素,包括前面的和后面的
                $("#two").siblings().css("background-color", "#bfa")
            });


            //(18)add()选择所有的 span 元素和id为two的元素
            $("#btn18").click(function () {

                //   $("span,#two,.mini,#one")
                $("span").add("#two").add("#one").add(".mini").css("background-color", "#bfa");

            });

        });


    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值