jQuery内容整理——DOM操作

class属性

.addClass(className/function(index,currentClass)):为每个匹配的元素添加指定的样式类名;
.hasClass(className)如果匹配元素上有指定的样式,那么.hasClass()方法将返回true;
.removeClass(className/function(index,class))除集合中每个匹配元素上一个,多个或全部(多个用空格隔开)样式。
.toggleClass()在匹配的元素集合中,如果存在(不存在)就删除(添加)一个类。

复制元素

.clone()复制一个匹配的元素集合的副本。复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。
注:使用.clone()可能产生id属性重复的元素的副作用,id应该是唯一的。

内部插入

HTML代码:<p>你好</p>

  1. append 向每个匹配的元素内部追加内容。
    $("p").append("<b>Hello</b>")---<p>你好<b>Hello</b></p>
  2. appendTo 与append相反
    $("<b>Hello</b>").appendTo("p")---<p>你好<b>Hello</b></p>
  3. prepend 插入到目标元素内部前端
    $("p").prepend ("<b>Hello</b>")---<p><b>Hello</b>你好</p>
  4. prependTo 与prepend 相反
    $("<b>Hello</b>").prependTo ("p")---<p><b>Hello</b>你好</p>
外部插入

HTML代码:<b>Hello</b><p>I say: </p>

  1. after() 在每个匹配的元素之后插入内容。
    $('p').after($('b'))---<p>I say: </p><b>Hello</b>
  2. before()在每个匹配的元素之前插入内容
    $('p').before($('b'))---<b>Hello</b><p>I say: </p>
  3. insertAfter() 与after相反
  4. insertBefore() 与before相反
替换
  1. replaceWith()将所有匹配的元素替换成指定的HTML或DOM元素。(如果是文档中的内容去替换别的内容,文档中的内容是移动到目标区域替换而不是复制一份去替换)例如:
<div class="container">
     <div class="first">Hello</div>
     <div class="second">And</div>
     <div class="third">Goodbye</div>
</div>
$('.third').replaceWith($('.first'));
====>
<div class="container">
     <div class="second">And</div>
     <div class="first">Hello</div>
</div>
```
2. replaceAll()用匹配的元素替换掉所有 selector匹配到的元素。

<p>Hello</p><p>cruel</p><p>World</p>
$(’<b>你好</b>').replaceAll('p');
结果:<b>你好</b><b>你好</b><b>你好</b>


#####包裹
1. wrap()匹配的元素用其他元素的结构化标记包裹起来
`$("p").wrap("<div class='wrap'></div>");`
原先div的内容作为新div的class,并将每一个元素包裹起来

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

$('.inner').wrap(function() {
return '<div class="' + $(this).text() + '" />';
});

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

2. unwrap() 移出元素的父元素
3. wrapAll()将所有匹配的元素用单个元素包裹起来
4. wrapInner()将每一个匹配的元素单独用一个元素包裹起来

#####删除
1. empty()删除匹配的元素集合中所有的子节点。
`$('<p>你好</p>').empty();`
`<p></p>`
2. remove() 在DOM中删除所有匹配的元素。$('p').remove('.red')
注:这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除。
3. detach()  与remove()类似
注:这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第1章 简介 第2章 DOM节点的创建 2-1 DOM创建节点及节点属性 通过JavaScript可以很方便的获...
    mo默22阅读 833评论 0 8
  • DOM创建节点及节点属性 通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作。但实际上...
    阿r阿r阅读 1,039评论 0 9
  • title: 《锋利的jQuery》三、jQuery的DOM操作date: 2017-07-03 09:23:54...
    Gary23阅读 397评论 0 1
  • 创建 $('body').append($(" ")) //向body 中插入一个 div 插入 append:...
    学开船不会开船阅读 269评论 0 1
  • JQuery中的DOM操作 一种与浏览器,平台,语言无关的接口。使用该接口可以轻松地访问页面中所有的标准组件。DO...
    王闲森阅读 172评论 0 0