• 【html、CSS、javascript-10】jquery-操作元素(属性CSS和文档处理)


    一、获得内容及属性

    三个简单实用的用于 DOM 操作的 jQuery 方法:

    • text() - 设置或返回所选元素的文本内容
    • html() - 设置或返回所选元素的内容(包括 HTML 标记)
    • val() - 设置或返回表单字段的值

    下面的例子演示如何通过 jQuery text() 和 html() 方法来获得内容:

    $("#btn1").click(function(){
      alert("Text: " + $("#test").text());
    });
    $("#btn2").click(function(){
      alert("HTML: " + $("#test").html());
    });

    下面的例子演示如何通过 jQuery val() 方法获得输入字段的值:

    $("#btn1").click(function(){
      alert("值为: " + $("#test").val());
    });

    获取属性的值

    jQuery attr() 方法用于获取属性值。

    下面的例子演示如何获得链接中 href 属性的值:

    $("button").click(function(){
      alert($("#runoob").attr("href"));
    });

    二、设置内容和属性

    我们将使用前一章中的三个相同的方法来设置内容:

    • text() - 设置或返回所选元素的文本内容
    • html() - 设置或返回所选元素的内容(包括 HTML 标记)
    • val() - 设置或返回表单字段的值

    下面的例子演示如何通过 text()、html() 以及 val() 方法来设置内容:

    $("#btn1").click(function(){
        $("#test1").text("Hello world!");
    });
    $("#btn2").click(function(){
        $("#test2").html("<b>Hello world!</b>");
    });
    $("#btn3").click(function(){
        $("#test3").val("RUNOOB");
    });

    text()、html() 以及 val() 的回调函数

    上面的三个 jQuery 方法:text()、html() 以及 val(),同样拥有回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。

    下面的例子演示带有回调函数的 text() 和 html():

    $("#btn1").click(function(){
        $("#test1").text(function(i,origText){
            return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")"; 
        });
    });
     
    $("#btn2").click(function(){
        $("#test2").html(function(i,origText){
            return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")"; 
        });
    });

    设置属性 - attr()

    jQuery attr() 方法也用于设置/改变属性值。

    下面的例子演示如何改变(设置)链接中 href 属性的值:

    $("button").click(function(){
      $("#runoob").attr("href","http://www.runoob.com/jquery");
    });

    attr() 方法也允许您同时设置多个属性。

    下面的例子演示如何同时设置 href 和 title 属性:

    $("button").click(function(){
        $("#runoob").attr({
            "href" : "http://www.runoob.com/jquery",
            "title" : "jQuery 教程"
        });
    });

    移除attr:removeAttr, prop

    下面的例子删除属性:

            $("#runoob").removeAttr("href")
            $("#runoob").prop("title")

    例子:禁用页面所有的复选框:

    $("input[type='checkbox']").prop({
      disabled: true
    });

    禁用和选中所有页面上的复选框,disabled:true表示禁用,checked:true表示选中。

    $("input[type='checkbox']").prop("disabled", true);
    $("input[type='checkbox']").prop("checked", true);

     实例:全部选择、全部取消、反选

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <input type="button" value="全选" onclick="SelectAll();">
        <input type="button" value="取消" onclick="Cancel();">
        <input type="button" value="反选" onclick="Reverse();">
        <table>
            <tr>
                <td><input type="checkbox"></td>
                <td>请选择</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>请选择</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>请选择</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>请选择</td>
            </tr>
        </table>
        <script src="jquery.js"></script>
        <script>
            function SelectAll() {
                $("table input").prop("checked",true)
            }
            function Cancel() {
                $("table input").prop("checked",false)
            }
            function Reverse() {
                $("table input").each(
                    function () {
                        if($(this).prop("checked")){
                            $(this).prop("checked",false)
                        }else{
                            $(this).prop("checked",true)
                        }
                    }
                )
            }
        </script>
    </body>
    </html>
    全选、取消、反选

    实例中涉及两种循环,jQuery中涉及两种循环方式:

    1、循环每个元素,在回调函数中可以用this表示当前循环的元素

    1)each函数中的return相当于for循环中的continue,只是结束当前循环

    2)each函数中的return false是结束each中的函数,主函数并不结束

    3)如果想结束主函数,则在each循环外部加 return

            function Reverse() {
                $("table input").each(
                    function () {
                        if($(this).prop("checked")){
                            $(this).prop("checked",false)
                        }else{
                            $(this).prop("checked",true)
                        }
                    }
                )
            }

    2、循环数组(i,v),i表示循环的索引,v表示循环的值

    li = [11,22,33,44,55]
    $.each(li,function (i,v) {
        console.log(i,v)
    })
    //结果输出
    //0 11
    //1 22
    //2 33
    //3 44
    //4 55

    attr() 的回调函数

    jQuery 方法 attr(),也提供回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。

    下面的例子演示带有回调函数的 attr() 方法:

    $("button").click(function(){
      $("#runoob").attr("href", function(i,origValue){
        return origValue + "/jquery"; 
      });
    });

     attr的坑

    以下代码,在cosole中执行:

    $("#d2").attr("checked","checked")  //会选中复选框

    $("#d2").removeAttr("checked")  //会取消复选框

    $("#d2").attr("checked","checked") //取消后,再次执行这句代码,则不会选中,

    所以设置和取消建议使用:

    $("#d2").prop("checked",true)

    $("#d2").prop("checked",false)

    <body>
        <input type="checkbox" checked="checked">
        <input id="d2" type="checkbox">
        <script src="jquery.js"></script>
        <script>
        </script>
    </body>

    三、jquery添加元素

    通过 jQuery,可以很容易地添加新元素/内容。

    添加新的 HTML 内容

    我们将学习用于添加新内容的四个 jQuery 方法:

    • append() - 在被选元素的结尾插入内容
    • prepend() - 在被选元素的开头插入内容
    • after() - 在被选元素之后插入内容
    • before() - 在被选元素之前插入内容

    jQuery append() 方法:

    jQuery append() 方法在被选元素的结尾插入内容(仍然该元素的内部)。

    $("p").append("追加文本");

    jQuery prepend() 方法

    jQuery prepend() 方法在被选元素的开头插入内容。

    $("p").prepend("在开头追加文本");

    通过 append() 和 prepend() 方法添加若干新元素

    在上面的例子中,我们只在被选元素的开头/结尾插入文本/HTML。

    不过,append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML(就像上面的例子那样),或者通过 JavaScript 代码和 DOM 元素。

    在下面的例子中,我们创建若干个新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 append() 方法把这些新元素追加到文本中(对 prepend() 同样有效):

    function appendText()
    {
        var txt1="<p>文本。</p>";              // 使用 HTML 标签创建文本
        var txt2=$("<p></p>").text("文本。");  // 使用 jQuery 创建文本
        var txt3=document.createElement("p");
        txt3.innerHTML="文本。";               // 使用 DOM 创建文本 text with DOM
        $("body").append(txt1,txt2,txt3);        // 追加新元素
    }

    jQuery after() 和 before() 方法

    jQuery after() 方法在被选元素之后插入内容。

    jQuery before() 方法在被选元素之前插入内容。

    $("img").after("在后面添加文本");
     
    $("img").before("在前面添加文本");

    通过 after() 和 before() 方法添加若干新元素

    after() 和 before() 方法能够通过参数接收无限数量的新元素。可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建新元素。

    在下面的例子中,我们创建若干新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 after() 方法把这些新元素插到文本中(对 before() 同样有效):

    function afterText()
    {
        var txt1="<b>I </b>";                    // 使用 HTML 创建元素
        var txt2=$("<i></i>").text("love ");     // 使用 jQuery 创建元素
        var txt3=document.createElement("big");  // 使用 DOM 创建元素
        txt3.innerHTML="jQuery!";
        $("img").after(txt1,txt2,txt3);          // 在图片后添加文本
    }

    那有木有考虑过append/prepend和after/before有什么区别呢?

    append

    <p>
      <span class="s1">s1</span>
    </p>
    <script>
    $("p").append('<span class="s2">s2</span>');
    </script>

    结果是这样的:

    <p>
      <span class="s1">s1</span>
      <span class="s2">s2</span>
    </p>

    after

    <p>
      <span class="s1">s1</span>
    </p>
    <script>
    $("p").after('<span class="s2">s2</span>');
    </script>

    结果是这样的:

    <p>
      <span class="s1">s1</span>
    </p>
    <span class="s2">s2</span>

    总结:

    append/prepend 是在选择元素内部嵌入。

    after/before 是在元素外面追加。

    另外还有

    appendTo() 效果与append相同

    $('<span class="s2">s2</span>').appendTo("p");

    prependTo()效果与prepend相同

    $('<span class="s2">s2</span>').preppendTo("p");

    insertBefor()效果与befor相同

    $('<span class="s2">s2</span>').insertBefor("p");

    inserAfter()效果与after相同

    $('<span class="s2">s2</span>').insertAfter("p");

    replaceWith()  

    用于将匹配元素替换掉的内容。如果这里传递一个函数进来的话,函数返回值必须是HTML字符串。

    <p>Hello</p>
    <p>cruel</p>
    <p>World</p>
    $("p").replaceWith("<b>Paragraph. </b>");
    结果:
    <b>Paragraph. </b>
    <b>Paragraph. </b>
    <b>Paragraph. </b>

    clone()

    $("b").clone().prependTo("p");

    四、jQuery - 删除元素

    通过 jQuery,可以很容易地删除已有的 HTML 元素。

    删除元素/内容

    如需删除元素和内容,一般可使用以下两个 jQuery 方法:

    • remove() - 删除被选元素(及其子元素)
    • empty() - 从被选元素中删除子元素

    jQuery remove() 方法

    jQuery remove() 方法删除被选元素及其子元素。

    $("#div1").remove();

    jQuery empty() 方法

    jQuery empty() 方法删除被选元素的子元素。

    $("#div1").empty();

    过滤被删除的元素

    jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。

    该参数可以是任何 jQuery 选择器的语法。

    下面的例子删除 class="italic" 的所有 <p> 元素:

    $("p").remove(".italic");

     五、jQuery - 获取并设置CSS类

    通过 jQuery,可以很容易地对 CSS 元素进行操作。

    jQuery操作CSS

    jQuery 拥有若干进行 CSS 操作的方法。我们将学习下面这些:

    • addClass() - 向被选元素添加一个或多个类
    • removeClass() - 从被选元素删除一个或多个类
    • toggleClass() - 对被选元素进行添加/删除类的切换操作
    • css() - 设置或返回样式属性

    实例样式表:

    .important
    {
            font-weight:bold;
            font-size:xx-large;
    }
     
    .blue
    {
            color:blue;
    }

    jQuery addClass() 方法

    下面的例子展示如何向不同的元素添加 class 属性。当然,在添加类时,您也可以选取多个元素:

    $("button").click(function(){
      $("h1,h2,p").addClass("blue");
      $("div").addClass("important");
    });

    您也可以在 addClass() 方法中规定多个类:

    $("button").click(function(){
      $("body div:first").addClass("important blue");
    });

    jQuery removeClass() 方法

    下面的例子演示如何在不同的元素中删除指定的 class 属性:

    $("button").click(function(){
      $("h1,h2,p").removeClass("blue");
    });

    jQuery toggleClass() 方法

    下面的例子将展示如何使用 jQuery toggleClass() 方法。该方法对被选元素进行添加/删除类的切换操作:

    $("button").click(function(){
      $("h1,h2,p").toggleClass("blue");
    });

    实例:切换加载和删除类

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
    $(document).ready(function(){
      $("button").click(function(){
        $("h1,h2,p").toggleClass("blue");
      });
    });
    </script>
    <style type="text/css">
    .blue
    {
    color:blue;
    }
    </style>
    </head>
    <body>
    
    <h1 class="blue">标题 1</h1>
    <h2 class="blue">标题 2</h2>
    <p class="blue">这是一个段落。</p>
    <p>这是另外一个段落。</p>
    <br>
    <button>切换 class</button>
    </body>
    </html>
    来回切换加载删除css类样式

     jQuery css()方法

     css() 方法设置或返回被选元素的一个或多个样式属性。

    返回css属性

    如需返回指定的 CSS 属性的值,请使用如下语法:

    css("propertyname");

    下面的例子将返回首个匹配元素的 background-color 值:

    $("p").css("background-color");

    设置css属性

    如需设置指定的 CSS 属性,请使用如下语法:

    css("propertyname","value");

    下面的例子将为所有匹配元素设置 background-color 值:

    $("p").css("background-color","yellow");

    设置多个 CSS 属性

    如需设置多个 CSS 属性,请使用如下语法:

    css({"propertyname":"value","propertyname":"value",...});

    下面的例子将为所有匹配元素设置 background-color 和 font-size:

    $("p").css({"background-color":"yellow","font-size":"200%"});

     jQuery 尺寸

    通过 jQuery,很容易处理元素和浏览器窗口的尺寸。

    jQuery 提供多个处理尺寸的重要方法:

    • width()
    • height()
    • innerWidth()
    • innerHeight()
    • outerWidth()
    • outerHeight()

    jQuery width() 和 height() 方法

    width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。

    height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。

    下面的例子返回指定的 <div> 元素的宽度和高度:

    $("button").click(function(){
      var txt="";
      txt+="div 的宽度是: " + $("#div1").width() + "</br>";
      txt+="div 的高度是: " + $("#div1").height();
      $("#div1").html(txt);
    });

    jQuery innerWidth() 和 innerHeight() 方法

    innerWidth() 方法返回元素的宽度(包括内边距)。

    innerHeight() 方法返回元素的高度(包括内边距)。

    下面的例子返回指定的 <div> 元素的 inner-width/height:

    $("button").click(function(){
      var txt="";
      txt+="div 宽度,包含内边距: " + $("#div1").innerWidth() + "</br>";
        txt+="div 高度,包含内边距: " + $("#div1").innerHeight();
      $("#div1").html(txt);
    });

    jQuery outerWidth() 和 outerHeight() 方法

    outerWidth() 方法返回元素的宽度(包括内边距和边框)。

    outerHeight() 方法返回元素的高度(包括内边距和边框)。

    下面的例子返回指定的 <div> 元素的 outer-width/height:

    $("button").click(function(){
      var txt="";
      txt+="div 宽度,包含内边距和边框: " + $("#div1").outerWidth() + "</br>";
      txt+="div 高度,包含内边距和边框: " + $("#div1").outerHeight();
      $("#div1").html(txt);
    });

     位置方法:

    jQuery offset() 方法

    返回 <p> 元素的偏移坐标:

    $("button").click(function(){
        var x=$("p").offset();
        alert("Top: " + x.top + " Left: " + x.left);
    });

    定义和用法

    offset() 方法设置或返回被选元素相对于文档的偏移坐标。

    当用于返回偏移时: 
    该方法返回第一个匹配元素的偏移坐标。它返回一个带有两个属性(以像素为单位的 top 和 left 位置)的对象。

    当用于设置偏移时: 
    该方法设置所有匹配元素的偏移坐标。

    //语法
    //返回偏移坐标:
    $(selector).offset()
    //设置偏移坐标:
    $(selector).offset({top:value,left:value})
    //使用函数设置偏移坐标:
    $(selector).offset(function(index,currentoffset))
    参数描述
    {top:value,left:value} 当设置偏移时是必需的。规定以像素为单位的 top 和 left 坐标。

    可能的值:
    • 名/值对,比如 {top:100,left:100}
    • 一个带有 top 和 left 的对象(实例
    function(index,currentoffset) 可选。规定返回包含 top 和 left 坐标的对象的函数。
    • index - 返回集合中元素的 index 位置。
    • currentoffset - 返回被选元素的当前坐标。

     jQuery position() 方法

    返回 <p> 元素的 top 和 left 位置:

    $("button").click(function(){
        x=$("p").position();
        alert("Top: " + x.top + " Left: " + x.left);
    });

    定义和用法:

    position() 方法返回第一个匹配元素的位置(相对于它的父元素)。

    该方法返回一个带有两个属性(以像素为单位的 top 和 left 位置)的对象。

    //语法
    $(selector).position()

    jQuery scrollTop() 方法

    返回 <div> 元素的垂直滚动条位置:

    $("button").click(function(){
        alert($("div").scrollTop());
    });

    定义和用法

    scrollTop() 方法设置或返回被选元素的垂直滚动条位置。

    提示:当滚动条位于最顶部时,位置是 0。

    当用于返回位置时:
    该方法返回第一个匹配元素的滚动条的垂直位置。

    当用于设置位置时:
    该方法设置所有匹配元素的滚动条的垂直位置。

    //语法
    //返回垂直滚动条位置:
    $(selector).scrollTop()
    //设置垂直滚动条位置:
    $(selector).scrollTop(position)

    jQuery scrollLeft() 方法

    返回 <div> 元素的水平滚动条位置:

    $("button").click(function(){
        alert($("div").scrollLeft());
    });

    定义和用法

    scrollLeft() 方法设置或返回被选元素的水平滚动条位置。

    提示:当滚动条位于最左侧时,位置是 0。

    当用于返回位置时:
    该方法返回第一个匹配元素的滚动条的水平位置。

    当用于设置位置时:
    该方法设置所有匹配元素的滚动条的水平位置。

    //语法
    //返回水平滚动条位置:
    $(selector).scrollLeft()
    //设置水平滚动条位置:
    $(selector).scrollLeft(position)
  • 相关阅读:
    夺命雷公狗---DEDECMS----21dedecms按照地区取出电影内容
    夺命雷公狗---DEDECMS----20dedecms取出栏目页对应的内容
    夺命雷公狗---DEDECMS----19dedecms栏目列表页的完成
    夺命雷公狗---DEDECMS----18dedecms之无可奈何标签-sql标签取出今天更新
    mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间
    SQL语句:find_in_set的使用方法
    夺命雷公狗---DEDECMS----17dedecms头条信息的取出
    夺命雷公狗---DEDECMS----16dedecms取出首页今日更新
    夺命雷公狗---DEDECMS----15dedecms首页栏目列表页导航部分完成
    夺命雷公狗---DEDECMS----14dedecms首页导航条的完成
  • 原文地址:https://www.cnblogs.com/sunshuhai/p/9124393.html
Copyright © 2020-2023  润新知