【jQuery】之DOM操作

jQuery

DOM操作

查找节点

查找元素节点

以选择器来查找元素节点

查找文本节点

以text()方法来查找文本节点

查找属性节点

以attr()方法来查找属性节点

<body>
<script src="js/jquery.js"></script>
<script></script>
</body>
<script is="qyc">  name="button"</script>
<script>
    var $qyc = $('#qyc');
    console.log('$qyc');
    console.log($qyc.text);
    console.log($qyc.attr('neme'));
    $qyc.text('新按钮')
    $qyc.attr('class','cls');

    /*
    * jQuery查找元素-
    * text()方法-等于DOM的textContent属性
    * 获取-text()
    * text(textContent)
    * textContent新的的文本内容
    *
    * attr()方法
    * 获取- attr(name,value)-等于DOM的setAttribute(mnm,valus)*/

</script>

获取父节点

selector:便是jQurery中的选择器 另外parent():获取父级元素 parents():获取祖先级元素 closest():匹配上级元素,并返回相同的元素

<body>
<div class="qh">
    <ul>
        <li id="dy">端游</li>
        <li>单机</li>
        <li>手游</li>
    </ul>
</div>
<script>
    var $dy = $('#dy');
    console.log($dy.psrent('div'));

    /*获取端游节点所有祖先节点
   * parent(expr)方法
   * 获取元素所有父元素
   * expr-表示选择器,并有过滤的作用
    */
    console.log($dy.psrent('div'));
    /*获取端游节点所有祖先节点
    * parents(expr)方法
    * 获取元素所有祖先元素
    * expr-表示选择器,并有过滤的作用
     */

    console.log($dy.chosect('div'));
    /*closest()方法
    * 获取元素指定祖先元素;返回第一个匹配元素
    * expr-表示为选择器,并有过滤的作用
    * 注意- jQuery用不报错,不会提供结果
     */

</script>
</body>

获取子节点

children()只获取子级元素(不获取后代元素)

<script src="js/jquery.js"></script>
</head>
<body>
<div class="qh">
    <ul id="dy">端游
        <li>联盟</li>
        <li>地下城</li>
        <li>火线</li>
    </ul>
    <ul>手游</ul>
    <ul>页游</ul>
</div>
<script>
    var $ul = $('ul:first');
    console.log($ul.children());
//    获取元素所有的子元素
    console.log($ul.find('li'));
//    获取元素的后代元素
</script>
</body>

获取兄弟节点

next():获取元素的下一个相邻兄弟元素 prev():获取元素的上一个相邻兄弟元素 siblings:获取元素所有兄弟元素

<body>
<div class="qh">
    <ul>
        <li id="dy">端游</li>
        <li>单机</li>
        <li>手游</li>
    </ul>
</div>
<script>
    var dy = document.getElementById('dy');
    var ul = dy.parentElement;
    var div = ul.parentElement;
    var body = div.parentElement;
    var html = body.parentElement;
    var root = html.parentElement;//null
    console.log(root);
    var arr = [];//用于存储元素的所有祖先元素
    function parents(element) {
        var parent = element.parentElement;
//        获取元素的父元素
        if(parent === null){ return; }
        arr.push(parent);
//        获取父元素,并增加到数组中
        parents(parent);
//        定义个递归函数
    }
    parents(dy);
    console.log(arr);
</script>
</body>

查找后代元素

以find:获取所有匹配其元素的选择器

<body>
<div class="qh">
    <ul id="qh">
        <li>端游</li>
        <li>单机</li>
        <li id="sy">手游</li>
        <li>掌机</li>
    </ul>
</div>
<script>
    var $sy = $('#sy');
    console.log($sy.next());//获取下个相邻兄弟元素
    console.log($sy.prev());//获取上个相邻兄弟元素
</script>
</body>

3.创建节点

工厂函数:以attr()该属性来建立属性节点

<script src="js/jquery.js"></script>
</head>
<body>
<ul id="qh">
    <li>端游</li>
    <li>单机</li>
    <li id="sy">手游</li>
    <li>掌机</li>
</ul>
<script>
    //    var $newli = $('<li></li>');
    //    $newli.text('掌机');
    //    $newLi.attr('id','zj');
    var $newli = $('<li id="q1">页游</li>');
    //    jQuery的工厂函数接收字符串类型HTML代码
    $('#qh').append($newli);
</script>
</body>

4.插入节点

插入内部节点

append()方法
表示插入到指定节点列表中的最后面
appendTo()方法
表示插入到指定节点列表中的最后面
prepend()方法
表示插入到指定节点列表中的最前面
prependTo()方法
表示插入到指定节点列表中的最前面
<body>

   <script src="js/jquery.js"></script>
</head>
<body>
<ul id="qh">
    <li>端游</li>
    <li>单机</li>
    <li id="sy">手游</li>
    <li>掌机</li>
</ul>
<script>
    //    var $newli = $('<li></li>');
    //    $newli.text('掌机');
    //    $newLi.attr('id','zj');
    var $newli = $('<li id="q1">页游</li>');
    //    jQuery的工厂函数接收字符串类型HTML代码
    $('#qh').append($newli);
</script>
</body>

插入外部节点

before()方法
表示插入到指定元素节点前一个位置
insertBefore()方法
表示插入到指定元素节点前一个位置
after()方法
表示插入到指定元素节点后一个位置
insertAfter()方法
表示插入到指定元素节点后一个位置

<script src="js/jquery.js"></script>
</head>
<body>
<ul>
    <li>端游</li>
    <li>单机</li>
    <li>手游</li>
</ul>
<script>
    var $li = $('<li id="q1">页游</li>');
    //    创建新li元素
    // $('ul').before($li);
    //    插入li元素的上方
    $('ul').after($li);
    //    插入li元素下方
</script>
</body>

5.删除节点

remove():用来删掉DOM所有的元素 empty():用来删除DOM的所有子节点

    <script src="js/jquery.js"></script>
</head>
<body>
<ul id="yx">
    <li id="lm">联盟</li>
    <li>火线</li>
    <li>地下城</li>
</ul>
<script>
//元素调用remove()该元素被删除
//    $('#lm').remove();
//    empty()表示删除后代节点;保留自身节点-清空
</script>
</body>

6.替换节点`

replaceWith()方法将所有匹配元素替换成HTML和DOM元素

   <script src="js/jquery.js"></script>
</head>
<body>
<ul id="yx">
    <li id="lm">联盟</li>
    <li>火线</li>
    <li>地下城</li>
</ul>
<script>
//    替换的元素调用replaceWith(),该方法接收参数是替换元素
//    $('#lm').replaceWith($('<li id="zj">战甲</li>'));
//    replaceAll()就是颠倒replaceWith()
    $('<li id="zj">战甲</li>').replaceAll(('#lm'));
</script>
</body>

7.复制节点

jQuery的clone方法 – 参数表示是否复制事件
DOM的cloneNode方法 – 参数表示是否复制后代节点

    <script src="js/jquery.js"></script>
</head>
<body>
<button id="qyc">按钮</button>
<script>
    $('#qyc').click(function () {
        console.log('you my button');
    });
    var $copy = $('#qyc').clone(true);
    $('body').append($copy);
    /*jQuery的clone方法 - 参数表示是否复制事件
      DOM的cloneNode方法 - 参数表示是否复制后代节点
     */
</script>
</body>

8.属性节点

    <script src="js/jquery.js"></script>
</head>
<body>
<ul id="yx">
    <li id="lm">联盟</li>
    <li>火线</li>
    <li>地下城</li>
</ul>
<script>
    $('#bj').removeAttr('id');
//    removeAttr()-相当于DOM中的removeAttribute()
</script>
</body>

9.样式操作

  <style>
        .qh {
            width: 200px;
            height: 200px;
            border: 1px solid blue;
        }
        .cq {
            width: 100px;
            height: 100px;
            border: 1px solid blue;
            background-color: red;
        }
    </style>
    <script src="js/jquery.js"></script>
</head>
<body>
<div id="qyc"></div>
<script>
    // $('#qyc').attr('style','width:100px;height:100px;background-color:red;');
//    attr设置style属性的样式
    $('#qyc').attr('class','qh');
    // 通过设置class属性为<div>元素添加外联样式
    $('#qyc').addClass('cq');
    // $('#qyc').attr('class','cq');// 替换样式
    // addClass(className)方法 - 表示添加样式(并不影响指定元素原本的样式)
    console.log($('#qyc').hasClass('qh'));
    // hasClass(className)方法 - 判断指定元素中是否包含指定样式名称

    console.log($('#qyc').css('width'));
   /* removeClass()方法 - 删除样式
    * removeClass()方法 - 删除所有样式
    * removeClass(className) - 删除指定样式
    */

    // $('#qh').removeClass('cq');

    // toggleClass()方法 - 在删除指定样式与添加指定样式之间切换
    // $('#qh').toggleClass('cq');

    // hasClass(className)方法 - 判断指定元素中是否包含指定样式名称


    $('#qyc').css({
        width: '600px',
        height: '600px'
    });
</script>
</body>

10.HTML操作


      <script src="js/jquery.js"></script>
</head>
<body>
<ul id="yx">
    <li id="lm">联盟</li>
    <li>火线</li>
    <li>地下城</li>
</ul>
<script>
    console.log($('#yx').html());

    var $html = $('#yx').html();
    $html += '<li>战甲</li>';
    $('#yx').html($html);

    console.log($('input').val());

    $('input').val('密码');
</script>
</body>
    原文作者:佐珥玎
    原文地址: https://segmentfault.com/a/1190000016302799
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞