为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
jQuery基础(二)—DOM篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery基础(二)—DOM篇

Aaron艾伦 Web前端工程师
难度入门
时长 2小时17分
  • append:这个操作与对指定的元素执行原生的appendChild方法,将它们添加到文档中的情况类似。

    appendTo:实际上,使用这个方法是颠倒了常规的$(A).append(B)的操作,即不是把B追加到A中,而是把A追加到B中。


    查看全部
  • var $body = $('body');

        $body.on('click', function() {

            //通过jQuery生成div元素节点

            var div = $("<div class='right'><div class='aaron'>动态创建DIV元素节点</div></div>")

            $body.append(div)

        })


    查看全部
  • 创建流程比较简单,大体如下:

    1. 创建节点(常见的:元素、属性和文本)

    2. 添加节点的一些属性

    3. 加入到文档中

    流程中涉及的一点方法:

    • 创建元素:document.createElement

    • 设置属性:setAttribute

    • 添加文本:innerHTML

    • 加入文档:appendChild


    查看全部
  •   //只克隆节点<br />        //不克隆事件<br />        $(".aaron1").on('click', function() {<br />            $(".left").append( $(this).clone().css('color','red') )<br /><p>        })</p><p><br /></p><p>//克隆节点<br />        //克隆事件<br />        $(".aaron2").on('click', function() {<br />            console.log(1)<br />            $(".left").append( $(this).clone(true).css('color','blue') )<br />        })<br /></p>
    查看全部
    0 采集 收起 来源:DOM拷贝clone()

    2020-09-11

  • 拷贝clone()

    .clone()方法深度 复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。

    如果节点有事件或者数据之类的其他处理,我们需要通过clone(ture)传递一个布尔值ture用来指定,这样不仅仅只是克隆单纯的节点结构,还要把附带的事件与数据给一并克隆了.

    • clone()方法时,在将它插入到文档之前,我们可以修改克隆后的元素或者元素内容,如右边代码我 $(this).clone().css('color','red') 增加了一个颜色

    • 通过传递true,将所有绑定在原始元素上的事件处理函数复制到克隆元素上

    • clone()方法是jQuery扩展的,只能处理通过jQuery绑定的事件与数据

    • 元素数据(data)内对象和数组不会被复制,将继续被克隆元素和原始元素共享。深复制的所有数据,需要手动复制每一个


    查看全部
    0 采集 收起 来源:DOM拷贝clone()

    2018-12-08

  • 删除之detach()和remove()区别

    remove移除节点

    • 无参数,移除自身整个节点以及该节点的内部的所有节点,包括节点上事件与数据

    • 有参数,移除筛选出的节点以及该节点的内部的所有节点,包括节点上事件与数据

    detach移除节点

    • 移除的处理与remove一致

    • 与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来

    • 例如:$("p").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。


    查看全部
  • var p;<br />    $("#bt1").click(function() {<br />        if (!$("p").length) return; //去重<br />        //通过detach方法删除元素<br />        //只是页面不可见,但是这个节点还是保存在内存中<br />        //数据与事件都不会丢失<br />        p = $("p").detach()<br />    });<br /><br />    $("#bt2").click(function() {<br />        //把p元素在添加到页面中<br />        //事件还是存在<br />        $("body").append(p);<br />    });
    查看全部
  • DOM节点删除之保留数据的删除操作detach()

    detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象.

    与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。
    $("div").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。


    查看全部
  • DOM节点删除之empty和remove区别

    empty方法

    • 严格地讲,empty()方法并不是删除节点,而是清空节点,它能清空元素中的所有后代节点

    • empty能删除自己本身这个节点

    remove方法

    • 该节点与该节点所包含的所有后代节点将同时被删除

    • 提供传递一个筛选的表达式,删除指定合集中的元素


    查看全部
  •   $("button:first").on('click', function() {<br />        //删除整个 class=test1的div节点<br />        $(".test1").remove()<br />    })<br /><br />    $("button:last").on('click', function() {<br />        //找到所有p元素中,包含了3的元素<br />        //这个也是一个过滤器的处理<br />        $("p").remove(":contains('3')")<br />    })
    查看全部
  • DOM节点删除之remove()的有参用法和无参用法

    但是remove会将元素自身移除,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据

    通过remove方法移除div及其内部所有元素,remove内部会自动操作事件销毁方法.

    remove比empty好用的地方就是可以传递一个选择器表达式用来过滤将被移除的匹配元素集合,可以选择性的删除指定的节点.可以通过$()选择一组相同的元素,然后通过remove()传递筛选的规则

    eg:

    $("p").filter(":contains('3')").remove()


    查看全部
  • DOM节点删除之empty()的基本用法

    这个方法不仅移除子元素(和其他后代元素),同样移除元素里的文本。

    eg: $("#test").empty()

    通过empty移除了当前div元素下的所有p元素
    但是本身id=test的div元素没有被删除


    查看全部
  • children()查看子元素

    find()查找所有后代元素

    parent()查找父元素

    parents()查找所有父元素

    $('html').parent()返回dom对象

    $("html").parents()返回空集合

    查看全部
  • insertBefore将JQuery封装好的元素插入到指定元素的前面,如果元素前面有元素了,那将前面的元素前移,然后将JQuery对象插入

    $("#bt1").on('click', function() {

            //在test1元素前后插入集合中每个匹配的元素
            //不支持多参数
            $('<p >测试insertBefore方法增加</p>', '<p >多参数</p>').insertBefore($(".test1"))

        })


    insertAfter将JQuery封装好的元素插入到指定元素的后面,如果元素后面有元素了,那将后面的元素后移,然后将JQuery对象插入

    $("#bt2").on('click', function() {
            //在test2元素前后插入集合中每个匹配的元素
            //不支持多参数
            $('<p >测试insertAfter方法增加</p>', '<p >多参数</p>').insertAfter($(".test2"))
        })

    查看全部
  • DOM外部插入insertAfter()与insertBefore()

    insertBefore:在目标元素前面插入集合中每个匹配的元素;

    insertAfter :在目标元素后面插入集合中每个匹配的元素

    .before()和.insertBefore()实现同样的功能。主要的区别是语法——内容和目标的位置。 对于before()选择表达式在函数前面,内容作为参数,而.insertBefore()刚好相反,内容在方法前面,它将被放在参数里元素的前面;

    .after()和.insertAfter() 实现同样的功能。主要的不同是语法——特别是(插入)内容和目标的位置。 对于after()选择表达式在函数的前面,参数是将要插入的内容。对于 .insertAfter(), 刚好相反,内容在方法前面,它将被放在参数里元素的后面

    insertBefore、insertAfter的除了目标与位置的不同外,不支持多参数处理。

    查看全部

举报

0/150
提交
取消
课程须知
1、有HTML/CSS基础 2、有JavaScript基础
老师告诉你能学到什么?
1、jQuery的语法 2、jQuery节点操作
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!