美文网首页
jQuery的DOM操作

jQuery的DOM操作

作者: zooeydotmango | 来源:发表于2019-09-25 01:40 被阅读0次

    创建元素


    只需要把DOM字符串传入$方法即可返回一个jQuery对象

    var obj = $('<div class="test"><p><span>Done</span></p></div>');
    

    添加元素


    内部添加,添加后是父子关系


    .append(content[, content]), .append(function(index,html))

    可以一次添加多个内容,内容可以是DOM对象、HTML string、 jQuery对象

    如果参数是function,function可以返回DOM对象、HTML string、 jQuery对象,参数是集合中的元素位置与原来的html值

    看几个例子

    $( ".inner" ).append( "<p>Test</p>" );
    $( "body" ).append( $newdiv1, [ newdiv2, existingdiv1 ] );
    $( "p" ).append( "<strong>Hello</strong>" );
    $( "p" ).append( $( "strong" ) );
    $( "p" ).append( document.createTextNode( "Hello" ) );
    

    .appendTo(target)

    把对象插入目标元素尾部,目标元素可以是selector, DOM对象, HTML string, 元素集合, jQuery对象;

    $( "h2" ).appendTo( $( ".container" ) );
    $( "<p>Test</p>" ).appendTo( ".inner" );
    

    .prepend(content[,content]) / .prepend(function(index,html))

    向对象头部追加内容,用法和append类似,内容添加到最开始

    $( ".inner" ).prepend( "<p>Test</p>" );
    

    .prependTo(target)

    把对象插入到目标元素头部,用法和prepend类似

    $( "<p>Test</p>" ).prependTo( ".inner" );
    

    .text()和 .html()

    都是一个读写两用的方法,用于获取/修改元素的innerHTML和innerText

    外部插入,插入后是兄弟关系


    .before([content][,content]) / .before(function)

    在对象前面(不是头部,而是外面,和对象并列同级)插入内容,参数和append类似

    $( ".inner" ).before( "<p>Test</p>" );
    $( ".container" ).before( $( "h2" ) );
    $( "p" ).first().before( newdiv1, [ newdiv2, existingdiv1 ] );
    $( "p" ).before( "<b>Hello</b>" );
    $( "p" ).before( document.createTextNode( "Hello" ) );
    

    .insertBefore(target)

    把对象插入到target之前(同样不是头部,是同级)

    $( "h2" ).insertBefore( $( ".container" ) );
    

    .after([content][,content]) / .after(function(index))

    和before相反,在对象后面(不是尾部,而是外面,和对象并列同级)插入内容,参数和append类似

    $( ".inner" ).after( "<p>Test</p>" );
    $( "p" ).after( document.createTextNode( "Hello" ) );
    

    .insertAfter(target)
    和insertBefore相反,把对象插入到target之后(同样不是尾部,是同级)

    $( "<p>Test</p>" ).insertAfter( ".inner" );
    $( "p" ).insertAfter( "#foo" );
    

    删除元素


    .remove([selector])

    删除被选元素(及其子元素)

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

    我们也可以添加一个可选的选择器参数来过滤匹配的元素

    $('div').remove('.test');
    

    .empty()

    清空被选择元素内所有子元素

    $('body').empty();
    

    .detach()

    .detach() 方法和.remove()一样, 除了 .detach()保存所有jQuery数据和被移走的元素相关联。当需要移走一个元素,不久又将该元素插入DOM时,这种方法很有用。

    .unwrap()

    删除元素的父级元素。和 .wrap()的功能相反。匹配的元素(以及他们的兄弟元素,如果有的话)取代他们的父母在DOM结构

    包裹元素

    .wrap(wrappingElement) / .wrap(function(index))

    为每个对象包裹一层HTML结构,可以是selector, element, HTML string, jQuery object

    <div class="container">
      <div class="inner">Hello</div>
      <div class="inner">Goodbye</div>
    </div>
    

    $( ".inner" ).wrap( "<div class='new'></div>" );看看结果

    <div class="container">
      <div class="new">
        <div class="inner">Hello</div>
      </div>
      <div class="new">
        <div class="inner">Goodbye</div>
      </div>
    </div>
    

    .wrapAll(wrappingElement)

    把所有匹配对象包裹在同一个HTML结构中

    <div class="container">
      <div class="inner">Hello</div>
      <div class="inner">Goodbye</div>
    </div>
    

    $( ".inner" ).wrapAll( "<div class='new' />");看看结果

        <div class="container">
          <div class="new">
            <div class="inner">Hello</div>
            <div class="inner">Goodbye</div>
          </div>
        </div>
    

    .wrapInner(wrappingElement) / .wrapInner(function(index))

    <div class="container">
      <div class="inner">Hello</div>
      <div class="inner">Goodbye</div>
    </div>
    

    $( ".inner" ).wrapInner( "<div class='new'></div>");执行结果

    <div class="container">
      <div class="inner">
        <div class="new">Hello</div>
      </div>
      <div class="inner">
        <div class="new">Goodbye</div>
      </div>
    </div>
    

    相关文章

      网友评论

          本文标题:jQuery的DOM操作

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