我爱编程

jQuery DOM

2017-05-26  本文已影响25人  学开船不会开船

创建

$('body').append($("<div></div>")) //向body 中插入一个 div

插入

append:这个操作与对指定的元素执行原生的appendChild方法,将它们添加到文档中的情况类似。

$(".content").append('<div></div>')

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

$('<div></div>').appendTo($(".content"))

注意

.after(content):在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点

$(".test2").after('<p>after</p>', '<p>多参数</p>')

.before(content):根据参数设定,在匹配元素的前面插入内容

$(".test1").before('<p>before</p>', '<p>多参数</p>')

注意

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

$('.aaron1').prepend('<p>prepend</p>')

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

$('<p>prependTo</p>').prependTo($('.aaron2'))

注意

insertBefore() 在目标元素前面插入集合中的每个元素

$('<p>测试insertBefore方法增加</p>', '<p>多参数</p>').insertBefore($(".test1"))

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

$('<p>测试insertAfter方法增加</p>', '<p>多参数</p>').insertAfter($(".test2"))

注意

删除

.empty() 清空所匹配元素内部的 html 代码,但标记仍然在 DOM 中

$('.hello').empty()

.remove() 移除所匹配元素内部所有元素,remove内部会自动操作事件销毁方法

$('.hello').remove()

注意

detach() 相当于剪切所匹配的元素,仅仅是显示效果没有了.但是内存中还是存在的.当你append之后,又重新回到了文档流中,就又显示出来了.

var p;
p = $("p").detach();  //p 元素只是从页面中消失了,
$("body").append(p); //p 元素又重新回到了页面上
注意

拷贝

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

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


//clone处理一
$("div").clone()   //只克隆了结构,事件丢失

//clone处理二
$("div").clone(true) //结构、事件与数据都克隆
注意

替换

.replaceWith( newContent ):用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合

简单来说:用$()选择节点A,调用replaceWith方法,传入一个新的内容B(HTML字符串,DOM元素,或者jQuery对象)用来替换选中的节点A
$("p").replaceWith('<a style="color:red">替换第二段的内容</a>')

.replaceAll( target ) :用集合的匹配元素替换每个目标元素

.replaceAll()和.replaceWith()功能类似,但是目标和源相反,用上述的HTML结构,我们用replaceAll处理
$('<a style="color:red">替换第二段的内容</a>').replaceAll('p')

注意

包裹

.wrap( wrappingElement ):在集合中匹配的每个元素周围包裹一个HTML结构

$('p').wrap('<div></div>') //给 p 元素增加一个 div 包围

.wrap( function ) :一个回调函数,返回用于包裹匹配元素的 HTML 内容或 jQuery 对象

使用后的效果与直接传递参数是一样,只不过可以把代码写在函数体内部,写法不同而已

$('p').wrap(function() {
    return '<div></div>';   //与第一种类似,只是写法不一样
})
注意

.unwarp(): 去除集合匹配的每一个元素周围包裹的一个 HTML 结构

$('p').unwarp(); //去除 p 标签外的一个 HTML 结构,而不伤害 p 标签

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

$('p').wrapAll('<div></div>') //给所有p元素增加一个div包裹

.wrapAll( function ) :一个回调函数,返回用于包裹匹配元素的 HTML 内容或 jQuery 对象

$('p').wrapAll(function() {
    return '<div><div/>'; 
})
注意

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

$('div').wrapInner('<p></p>') //给 div 的所有子元素增加一个 p 标签

.wrapInner( function ) :允许我们用一个callback函数做参数,每次遇到匹配元素时,该函数被执行,返回一个DOM元素,jQuery对象,或者HTML片段,用来包住匹配元素的内容

$('div').wrapInner(function() {
    return '<p></p>'; 
})
注意

遍历

.children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈,这里可以理解为就是父亲-儿子的关系)

$('div').children() //找到 div 中的所有子元素
$("div").children(':last') //找到 div 中的子元素的最后一个

.find() 查找所有后代节点中的所匹配的元素

$("div").find("li") //div 中所以为 li 的后代节点

注意

parent() 查找所匹配元素的父元素
parents() 查找所匹配元素的所有祖先元素

$('.item').parent(':first')
$('.item').parents('.first-div')

closest()方法接受一个匹配元素的选择器字符串

$("div").closet("li')

注意

.next() 元素紧邻的后面同辈元素的元素集合

$('.item').next(':first')

.prev() 元素紧邻的前面同辈元素的元素集合

$('.item').prev()

.siblings()元素集合中每一个元素的兄弟元素(不包含自己)

.add() 向指定元素添加新的对象

.add()的参数可以几乎接受任何的$(),包括一个jQuery选择器表达式,DOM元素,或HTML片段引用。
$('li').add('p').css('background', 'red')
$('li').add('<p>新的p元素</p>').appendTo($('.class'))

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

each是一个for循环的包装迭代器
each通过回调的方式处理,并且会有2个固定的实参,索引与元素
each回调方法中的this指向当前迭代的dom元素
$("li").each(function(index, element) {
     index 索引
     element是对应的li节点
     this 指向的是li
})
上一篇下一篇

猜你喜欢

热点阅读