美文网首页
jQuery中的DOM操作

jQuery中的DOM操作

作者: 彭于晏的老婆呀 | 来源:发表于2018-10-08 14:44 被阅读0次

    1.创建文本节点:

    在js: 

    创建元素:document.createElement

    设置属性:setAttribute

    添加文本:innerHTML

    加入文档:appendChild


    在jQuery中:

    var $body = $('body');

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

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

     var div = $("动态创建DIV元素节点")        

    $body.append(div)

        })


    2.DOM内部插入append()与appendTo() prepend()与prependTo()

    append()前面是被插入的对象,后面是要在对象内插入的元素内容

    appendTo()前面是要插入的元素内容,而后面是被插入的对象

    prepend()向每个匹配的元素内部前置内容

    prependTo()把所有匹配的元素前置到另一个指定的元素集合中


    3.DOM外部插入after()与 before()

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

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

    empty(),删除节点中的文本内容;

    remove(),无参用法:删除指定的全部节点,连同事件一起销毁

    有参用法:删除指定的节点

    empty与remove的区别:

    empty():

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

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

    remove():

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

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

    detach()删除页面的节点,当使用append时又会出现。所以数据和事件都不会被删除;

    复制

    clone()只克隆节点不克隆事件

    clone(true)节点和事件都克隆

    替换

    replaceWith()和replaceAll()

    .replaceAll()和.replaceWith()功能类似,主要是目标和源的位置区别

    .replaceWith()与.replaceAll() 方法会删除与节点相关联的所有数据和事件处理程序

    .replaceWith()方法,和大部分其他jQuery方法一样,返回jQuery对象,所以可以和其他方法链接使用

    .replaceWith()方法返回的jQuery对象引用的是替换前的节点,而不是通过replaceWith/replaceAll方法替换后的节点

    包裹

    wrap():就是使用wrap将原来的元素包裹起来,相当于给原来的元素增加父元素;

    两种用法:

    $('p').wrap('<div></div>')

    使用回调函数:

    $('p').wrap(function() {

        return '<div></div>';  //与第一种类似,只是写法不一样

    })

    unwrap():将父级元素删除;

    wrapAll():给集合中匹配的元素增加一个外面包裹HTML结构

    $('p').wrapAll('<div></div>')   给所有的p标签加上一个共同的父元素div

    $('p').wrapAll(function() {

        return '<div><div/>';

    })

    给每个p标签都加上一个父级元素div

    wrapInner():给集合中匹配的元素的内部,增加包裹的HTML结构

    $('div').wrapInner('<p></p>')

    $('div').wrapInner(function() {

        return '<p></p>';

    })

    jQuery遍历

    children():通过children迅速找到第一级子元素

    find():通过find迅速找到后代(祖孙)元素

    parent():通过parent迅速找到父级元素

    parents():通过parents在DOM树中搜索到元素的所有祖先元素;

    parent()与parents()的区别:

    1 .parents()和.parent()方法是相似的,但后者只是进行了一个单级的DOM树查找

    2  $( "html" ).parent()方法返回一个包含document的集合,而$( "html" ).parents()返回一个空集合。

    closest():从元素本身开始,在DOM 树上逐级向上级元素匹配,并返回最先匹配的祖先元素;

    next():快速查找指定元素集合中每一个元素紧邻的后面同辈元素的元素集合

    prev():快速查找指定元素集合中每一个元素紧邻的前面同辈元素的元素集合

    siblings():快速查找指定元素集合中每一个元素的同辈元素

    add():用于创建一个新的jQuery对象

    传递选择器:$('li').add('p')

    传递dom元素:$('li').add(document.getElementsByTagName('p')[0])

    .each() 方法就是一个for循环的迭代器,它会迭代jQuery对象合集中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数

    相关文章

      网友评论

          本文标题:jQuery中的DOM操作

          本文链接:https://www.haomeiwen.com/subject/sqlziftx.html