jQuery核心函数+选择器

本文详细介绍了jQuery的核心函数,包括页面加载、选择元素、DOM对象与jQuery对象的转换等,并探讨了jQuery选择器的重要性,如基本选择器、层次选择器、过滤选择器等,以及DOM属性和样式操作。jQuery旨在简化JavaScript开发,提高效率,同时处理浏览器兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

框架:提高开发效率(减少代码量),性能降低

jQuery:是一个脚本框架,是一个快速、简洁的JavaScript框架;

        设计宗旨是“write Less,Do More”(链式编程)obj.m1().m2().m3()......

        Js:提供丰富的页面效果===>人机交互  富客户端技术

        jQuery主要目的:操作html、css

        jQuery只是一个JavaScript框架,他的功能没有JavaScript强大,以后的开发中,如果jQuery不能满足需求,那么需要退到JavaScript操作【jQuery提供了与DOM之间的转化】。如果JavaScript也不能满足需求,就说明脚本解决不了此问题。

        jQuery提高开发效率,可以屏蔽底层浏览器的差异(版本)问题。

1、核心函数:是 jQuery 的基础语法,也是 jQuery 提供其它功能的平台

                页面onload 函数:jQuery(callback)

                查找指定对象:jQuery(expression, [context])

                Dom 对象转换 jQuery对象:jQuery(elements)

                html 转换 jQuery对象:jQuery(html, [ownerDocument])

jQuery() 可以直接使用 $() 取代:

	//页面加载完毕后 执行,三个代码没有任何区别,进行了简写
	jQuery(document).ready(function () {
	    alert("111");
	});
	//jQuery简写成$
	$(document).ready(function () {
	    alert("222");
	});
	//再继续简化
	$(function () {
	    alert("3333");
	});

jQuery对象无法使用 DOM对象属性方法,DOM对象也无法使用 jQuery对象属性方法

	<script>
	    //DOM操作,DOM对象无法使用jQuery对象属性方法.html("")
	    function clickDIV() {
	        document.getElementById("mydiv").innerHTML="您好!";
	        // $("#mydiv").innerHTML="您好!";
	    }
	    //jQuery操作,jQuery对象无法适用DOM对象属性方法.innerHTML=""
	    function clickDIV2() {
	        $("#mydiv").html("您好1!");
	        // document.getElementById("mydiv").html("您好1!")
	    }
	</script>

对象互换:

DOM 对象转换为 jQuery对象:

        只需要用$()将 DOM对象包装起来,就可以获得 jQuery对象 ---  $(DOM对象)

        var variable = document.getElementById(“mydiv”); // DOM对象

        var $variable = $(variable);  // jQuery对象

jQuery 对象转换为 DOM对象:

        通过两种方式转换 [index] 和 get(index)

        $variable = $(“#mydiv”); // jQuery对象

        方式一:var variable = $variable[0]; // DOM对象

        方式二:var variable = $variable.get(0); // DOM对象

    $("#mydiv").get(0).innerHTML="您好!";
	$(document.getElementById("mydiv")).html("您好1!");

注:如果jQuery对象能够满足需求,使用jQuery对象进行操作;如果jQuery不能满足需求,那么使用DOM 对象。

2、jQuery选择器:预先操作,必先选中

        是jQuery的根基,在jQuery中,对事件处理,遍历DOM和Ajax操作都依赖于选择器

        jQuery 内部提供了 9 种选择器,

基本选择器:是 jquery所有选择器的基础,通过元素的id属性、class属性、标签名称进行选择

#id:根据id属性查找一个元素  例如:$(“#mydiv")
.class:根据class属性查找元素 例如:$(".myClass");
element:根据元素标签名称查找所有元素  例如: $("div");
*:匹配所有元素 例如 $("*");
selector1,selector2,selectorN:将每一个选择器匹配到的元素合并后一起返回
    // 基本选择器    
    <script TYPE="text/javascript">
        $(function () {
            //通过each() 在每个div元素前 加入 “欢迎光临"
            $("div").each(function () {
                this.innerHTML="欢迎光临"+this.innerHTML;
            })

            // 通过size()方法 / length 打印页面中 class属性为 one 的元素数量
            // alert($("div").size());
            alert($(".one").length);

            // 通过index()  打印 id属性为foo 的div标签 是页面内的第几个div标签
            alert($("div").index($("#foo")));
        })
    </script>

层次选择器:是根据DOM元素的层级关系,通过后代元素、子元素、兄弟元素进行选择

ancestor descendant:获取ancestor元素下边的所有元素  $("form input")

parent > child:获取parent元素下边的所有直接child 子元素  $("form > input")
prev + next:获取紧随pre元素的后一个兄弟元素 $("label + input")
prev ~ siblings:获取pre元素后边的所有兄弟元素 $("form ~ input")
    // 层次选择器    
    <script type="text/javascript">
        $(function () {
            //将class属性值为one的元素下所有a元素字体变为红色
            $(".one a").attr("style","color:red");

            //将class属性值为one的元素下直接a元素字体变为蓝色
            $(".one > a").css("color","blue");

            // 将div元素后所有兄弟a元素,字体变为黄色,大小变为30px
            $(".one ~ a").css({color:'yellow','font-size':'30px'});
        })
    </script>

过滤选择器:是对基本选择器和层次选择器的结果进行过滤,通过 ":" 添加过滤条件;过滤选择器被分为七类:

 基本过滤选择器:

:first  选取第一个元素 $("tr:first")

:last   选取最后一个元素 $("tr:last")
:not(selector)  去除所有与给定选择器匹配的元素 $("input:not(:checked)")
:even  选取所有元素中偶数索引的元素,从 0 开始计数 $("tr:even")
:odd  选取所有元素中奇数索引的元素 ,从 0 开始计数 $("tr:odd")
:eq(index) 选取指定索引的元素  $("tr:eq(1)")
:gt(index)  选取索引大于指定index的元素  $("tr:gt(0)")
:lt(index)   选取索引小于指定index的元素  $("tr:lt(2)")
:header  选取所有的标题元素  如:h1, h2, h3   $(":header")
:animated  匹配所有正在执行动画效果的元素
    //基本过滤选择器:
    <script type="text/javascript">
        $(function () {
            // 设置表格第一行,显示为红色
            $("tr:first").css("color","red");
            $("tr:eq(0)").css("color","red");
            $("tr").eq(0).css("color","red");

            // 设置表格除第一行以外 显示为蓝色
            $("tr:not(tr:first)").css("color","blue");
            $("tr:gt(0)").css("color","blue");
            $("tr").not("tr:first").css("color","blue");

            // 设置表格奇数行背景色 黄色
            $("tr:even").css("background-color","yellow");
            // 设置表格偶数行背景色 绿色
            $("tr:odd").css("background-color","green");

            // 设置页面中所有标题 显示为粉色
            $(":header").css("color","pink");

            // 设置页面中正在执行动画效果div背景色黄色
            $("div").click(function () {
                $(this).css("background-color","yellow");
                $(this).slideToggle("slow");
            })

            //没有效果的DIV变为绿色,点击后变为背景色为黄色,动画淡出
            $("div:not(:animated)").css("color","green");
        })
    </script>

内容过滤选择器:是对子元素和文本内容的操作

        :contains(text)  选取包含text文本内容的元素  $("div:contains('John')")

        :empty  选取不包含子元素或者文本节点的空元素 $("td:empty")

        :has(selector)选取含有选择器所匹配的元素 $("div:has(p)").addClass("test")

        :parent  选取含有子元素或文本节点的元素  $("td:parent")

    // 内容过滤选择器
    <script type="text/javascript">
        $(function () {
            // 设置含有文本内容 ”上海” 的 div 的字体颜色为红色
            $("div:contains('上海')").css("color","red");

            // 设置没有子元素的div元素 文本内容 ”这是一个空DIV“
            $("div:empty").html("这是一个空DIV").css("color","green");

            // 设置含有 含p元素 的 div 背景色为黄色
            $("div:has('p')").css("background-color","yellow");

            // 设置所有含有子元素 span 字体为蓝色
            $("span:parent").css("color","blue");
            // $("div:has('span')").css("color","blue");
            // 不可使用"div:has()",输出是div下所有的内容,也包含span标签后的,输出不满足要求
        })
    </script>

可见度过滤选择器:根据元素的可见与不可见状态来选取元素

        :hidden 选取所有不可见元素$("tr:hidden"),匹配所有display:none、input hidden元素

        :visible  选取所有可见的元素 $("tr:visible")

    // 可见度过滤选择器
    <script type="text/javascript">
        $(function () {
            // 为表单中所有隐藏域  添加 class属性,值为one
            $("input:hidden").addClass("one");

            // 设置table所有 可见 tr 背景色 黄色
            $("tr:visible").css("background","yellow");

            // 设置table所有 隐藏tr 字体颜色为红色,显示出来 ,并输出tr中文本值
            $("tr:hidden").each(function () {
                alert($(this).text());
            })
            $("tr:hidden").css("color","red");

            //显示隐藏元素
            $("tr:hidden").show();//展示的是display:none的元素
        })
    </script>

属性过滤选择器:通过元素的属性来选取相应的元素

        [attribute] 选取拥有此属性的元素  $("div[id]")

        [attribute=value] 选取指定属性值为value的所有元素

        [attribute !=value] 选取属性值不为value的所有元素

        [attribute ^= value] 选取属性值以value开始的所有元素

        [attribute $= value] 选取属性值以value结束的所有元素

        [attribute *= value]  选取属性值包含value的所有元素

        [selector1] [selector2]…[selectorN] 复合性选择器,首先经[selector1]选择返回集合A,集合A再经过[selector2]选择返回集合B,集合B再经过[selectorN]选择返回结果集合

    // 属性过滤选择器
    <script type="text/javascript">
        $(function () {
            // 设置所有含有id属性的div,字体颜色红色
            $("div[id]").css("color","red");

            // 设置所有class属性值 含有one元素背景色为黄色
            $("*[class *='one']").css("background","yellow");

            // 对所有既有id又有class属性div元素,添加一个点击事件,打印div标签中内容
            $("div[id][class]").click(function () {
                alert($(this).html());
            })
        })
    </script>

子元素过滤选择器:对某元素中的子元素进行选取

        :nth-child(index/even/odd) 选取索引为index的元素、索引为偶数的元素、索引为奇数的元素  ----- index 从1开始

        :first-child  选取第一个子元素

        :last-child  选取最后一个子元素

        :only-child 选取唯一子元素,它的父元素只有它这一个子元素

    // 子元素过滤选择器    
    <script type="text/javascript">
        $(function () {
            // 选择id属性mytable 下3的倍数行,字体颜色为红色
            $("#mytable tr:nth-child(3n)").css("color","red");

            // 表格 奇数行 背景色 黄色
            // $("tr:even").css("background","yellow");
            $("#mytable tr:even").css("background","yellow");
            
            // 表格 偶数行 背景色 灰色
            // $("tr:odd").css("background","pink");
            $("#mytable tr:odd").css("background","pink");

            // 只有一个td的 tr元素 字体为 蓝色
            $("td:only-child").css("color","blue");
        })
    </script>

表单过滤选择器:选取表单元素的过滤选择器

        :enabled  选取所有可用元素

        :disabled  选取所有不可用元素

        :checked  选取所有被选中的元素,如单选框、复选框

        :sele cted  选取所有被选中项元素,如下拉列表框、列表框

    // 表单过滤选择器
    <script type="text/javascript">
        $(function(){
            // 对所有text框和password框,添加离焦事件,校验输入内容不能为空
            //blur不能为空
            $(":text,:password").blur(function(){
                var inputValue = $(this).val();
                inputValue = $.trim(inputValue);
                if(inputValue == ""){
                    alert("输入不能为空!");
                }
            });

            //  对button 添加 点击事件,提交form表单
            $(":button").click(function(){
                $("#myform").submit();
            });
        });
    </script>

    // 表单对象属性过滤选择器
    <script type="text/javascript">
        $(function(){
            // 点击button 打印radio checkbox select 中选中项的值
            $("#mybutton").click(function(){
                // 获得radio的值
                $("input[name='gender']:checked").each(function(){
                    alert($(this).val());
                });
                // 获得checkbox的值
                $("input[name='hobby']:checked").each(function(){
                    alert($(this).val());
                });
                // 获得select的值
                $("select[name='city'] option:selected").each(function(){
                    alert($(this).val());
                });
            });
        });
    </script>

3、DOM属性操作:

属性操作:是 jQuery 提供对文档属性的增删改查操作,常用有以下几个方法:

        attr(name)  获取指定名称的属性

        attr(key, value)  设置指定名称的属性值

        attr(properties)  将一个“名/值”形式的对象设置匹配的元素属性

        removeAttr(name)  从元素中删除属性

    // 设置元素的属性    
    <script type="text/javascript">
        $(function(){
            $("#addAttrBtn").click(function(){
                $("div").attr({'id':'mydiv','name':'mydivname','class':'myclass',
'customerAttr':'自定义属性'});
                $("div").attr("age","20");
                alert($("div").attr("name"));//获取name并跳出窗口
                $("div").removeAttribute("customerAttr");
            });
        });
    </script>

4、样式操作:是 jQuery 提供对文档样式的操作:

        attr(“style”,”color:red”)   设置/获取 style属性

        css(name)  获取一个CSS样式属性

        css(name, value)  设置一个CSS样式属性

        css(properties)  传递key-value对象,设置多个CSS样式属性

        addClass(class)  添加一个class属性

        removeClass([class])  移除一个class属性

        toggleClass(class)  如果存在(不存在)就删除(添加)一个类

    // CSS样式操作    
    <script type="text/javascript">
        $(function () {
            // 点击 button,使一个 div的背景颜色变为 黄色
            $("#button1").click(function () {
                $("#div1").css("background-color","yellow");
                $("#div1").attr("style","color:red");
            })
            // 通过 toggleClass(class) 实现点击字体变为蓝色,再点击样式还原
            $("#button2").click(function () {
                // $("#div1").toggleClass("one");//添加class属性
                $("#div1").css("color","blue");
                $("#div1").addClass("one two");
                alert();
                $("#div1").removeClass("");
            })
        })
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值