jquery获取内容+节点操作+事件机制

之前书写了jquery的核心函数和选择器,关于jquery还有一些内容:

1、jquery获取HTML、文本和值:

        innerHTML==html();innerText==text();outerHTML:展现标签全文内容

读取和设置某个元素中 HTML内容: 

        html() 获取一个元素中html内容;html(val) 设置一个元素中html内容;这个函数不能用于XML文档。但可以用于XHTML文档

读取和设置某个元素中的文本内容:

        text() 获取一个元素中 文本内容;text(val) 设置一个元素中 文本内容;该方法既可以用于 XHTML 也可以用于 XML 文档

文本框、下拉列表框、单选框 选中的元素值:

        val() 获取文本框、下拉列表框、单选框 value值;val(val) 设置文本框、下拉列表框、单选框 value值

// 设置或获取HTML、文本和值
    <script type="text/javascript">
        $(function(){
            // <div><p>欢迎光临</p></div>  获取div中 html和text 对比
			alert($("<div><p>欢迎光临</p></div>").html());
			alert($("<div><p>欢迎光临</p></div>").text());

            alert(document.getElementById("myDiv").innerHTML);
            alert(document.getElementById("myDiv").innerText);

            alert($("#myDiv").html());
            alert($("#myDiv").text());

            //click点击事件
            $("#mybutton").click(function(){
                // 使用val() 获得文本框、下拉框、单选框选中的value
                alert($("#username").val());
                alert($("#city").val());
                alert($("input[name='gender']").val()); // 只能获得第一个值
                alert($("input[name='gender']:checked").val()); // 获取所选的值
            });
        });
    </script>

2、DOM节点操作

添加节点:

        创建元素:

                使用工厂函数 jQuery(html, [ownerDocument])  --- jQuery可以写为$

                例如: $(“<div>你好,jQuery</div>”);

        内部插入(父子关系):

                $node.append($newNode)向每个匹配的元素内部的结尾处追加结尾处

                $newNode.appendTo($node)将新元素追加到每个匹配元素内部的结尾处

                $node.prepend($newNode) 向每个匹配的元素内部的追加开始处

                 $newNode.prependTo($node)将新元素追加到每个匹配元素内部的开始处

        外部插入(兄弟关系):

                $node.after($newNode) 向每个匹配的元素的之后插入内容,是并列兄弟

                $newNode.insertAfter($node)  将新元素插入到每个匹配元素之后

                $node.before($newNode)  向每个匹配的元素的之前插入内容

                $newNode.insertBefore($node)  将新元素插入到每个匹配元素之前    

    <script type="text/javascript">
        $(function () {
            //内部插入(父子关系):
            // 在 id=“edu”下增加 <option value="大专">大专^^^^^</option>
            $("#edu").append($('<option value = "大专">大专</option>'));
            $('<option value = "大专">大专</option>').appendTo($("#edu"));

            //外部插入(兄弟关系):
            //<option value="幼儿园">幼儿园^^^^^</option> 之前添加 <option value="中学生">中学生^^^^^</option>
            $("#edu option[value='幼儿园']").before('<option value="中学生">中学生^^^^^</option>');
            $('<option value="中学生">中学生</option>').insertBefore($("#edu option[value='幼儿园']"));
        });
    </script>

删除节点:    

        $(“p”).remove(“.hello”):删除所为 class属性值为 hello 的 p元素,还有它下面的所有元素;

                该方法返回被删除节点的引用

                该方法删除节点后,连同节点的事件也删除了

        $(“p”).empty():清除所有 p元素,还有它下面的所有元素

        $("p").detach(): 被删除的节点,会保留原有的事件

    <script type="text/javascript">
        // 节点删除
        $(function(){
            // remove后的元素  事件 也删除了
			// 	$("#mybutton").click(function(){
			// 		$p = $("p").remove();
			// 		$("body").append($p);
			// 	});

            // 采用1.4版本新提供的 detach方法,可以保留原有事件
            $("#mybutton").click(function(){
                $p = $("p").detach();
                $("body").append($p);
            });
        });
    </script>

复制与替换节点:

        复制节点:

                $(“p”).clone();  返回节点克隆后的副本,但不会克隆原节点的事件

                $(“p”).clone(true);  克隆节点,保留原有事件

        替换节点:

                $(“p”).replaceWith(“<b>大世界</b>");  将所有p元素,替换为"<b>大世界</b>“

                $(“<b>大世界</b>”).replaceAll(“p”);  与replaceWith相反

    <script type="text/javascript">
        $(function () {
            $("#toRight").click(function () {
                // $("#rightSelect").append($("#leftSelect option:selected"));
                $("#rightSelect").append($("#leftSelect option:selected").clone());//克隆
            });
            $("#allToRight").click(function () {
                // $("#rightSelect").append($("#leftSelect option"));
                $("#rightSelect").append($("#leftSelect option").clone());
            });
        })
    </script>

3、事件机制:jQuery 提供的事件与传统 JS 相同,只是采用jQuery语法操作更为方便

绑定事件:

        $("#mybutton").click(function(){alert(1);})

        $("#mybutton").on("click",function(){alert(2);});

解除绑定:$(“#mybutton”).off(“click”);

    <script type="text/javascript">
        $(function(){
            // 传统js
            document.getElementById("mybutton").onclick = function(){alert(1);};
            // 传统方式只能绑定一个事件
            document.getElementById("mybutton").onclick = function(){alert(11);};

            // jquery 允许同时绑定多个事件
            $("#mybutton").click(function(){alert(2)});

            // 通过bind函数绑定
            $("#mybutton").bind("click",function(){alert(3)});
            $("#mybutton").on("click",function(){alert(33)});
        });
    </script>

点击事件:

        一次性事件 one(type, [data], fn):为对象绑定一次性事件,只有一次有效;

        触发事件 trigger(type, [data]) :触发目标对象指定的事件执行

        <script type="text/javascript">
            // 一次性事件和 自动触发事件
            $(function(){
                // 为页面内所有p 元素绑定 一次性事件,点击打印p元素中内容
                $("p").one("click",function(){
                    alert($(this).html());
                });

                // 页面内有两个按钮,点击按钮1, 触发按钮2的 click事件执行
                $("#mybutton2").click(function(){
                    alert("按钮二 被点击了");
                });

                $("#mybutton1").click(function(){
                    alert("按钮一 被点击了");
                    // 触发按钮二 点击事件
                    // $("#mybutton2").trigger("click");//已经不使用了,底层原理
                    $("#mybutton2").click;
                });
            });
        </script>

鼠标操作事件:

        hover(): 模拟光标悬停时间。当光标移动到元素上时,会触发指定的第一个函数,当光标移出这个元素时,会触发指定的第二个函数;

        toggle():用于模拟鼠标连续单击事件。第一次单击元素,触发指定的第一个函数,当再一次单击同一个元素时,则触发指定的第二个函数,如果有更多个函数,则依次触发,直到最后一个

    <script type="text/javascript">
        // 事件切换 效果 ---- 合成事件
        $(function(){
            // 编写一个div元素,光标移动上去 字体变为红色,移开后 变为蓝色
            $("div").hover(function(){
                $(this).css("color","red");
            },function(){
                $(this).css("color","blue");
            });
        });
    </script>

默认事件动作和取消事件冒泡

        preventDefault():  取消可能引起任何语意操作的事件. 比如<a>元素的href链接加载, 表单提交以及click引起复选框的状态切换

        stopPropagation(): 取消事件冒泡

    <script type="text/javascript">
        // 阻止事件的冒泡传播 和  默认事件动作
        $(function(){
            $("#mylink").click(function(event){
                alert("a");
                // 阻止事件冒泡(事件的向下蔓延) ,兼容浏览器
                event.stopPropagation();
            });

            // 阻止默认事件发生
            $("#delLink").click(function(event){
                alert("del");
                // 阻止默认href事件的发生 ,兼容浏览器
                event.preventDefault();
            });

            //通常使用此方法
            $("#delLink2").click(function(event){
                alert("#");
                event.preventDefault();
            });
        });
    </script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值