您的位置:首页 > 其它

Dom元素节点操作

2017-10-24 17:17 134 查看
jquery:
 
jQuery节点创建与属性的处理
* 例:var div = $(“<div id='test' class='aaron'>我是文本节点</div>")
$(“body”).append(div)
DOM内部插入append()与appendTo()
append( content
):向   每个   匹配的元素内部追加内容
*
这个操作与对指定的元素执行原生的appendChild方法,将它们添加到文档中的情况类似。
$(".content").append('<div class="append">通过append方法添加的元素</div>')
appendTo( content
):把所有匹配的元素追加到另一个,指定的元素元素集合中
* 使用这个方法是颠倒了常规的$(A).append(B)的操作,即不是把B追加到A中,而是把A追加到B中。
$('<div class="appendTo">通过appendTo方法添加的元素</div>').appendTo($(".content"))
*
以上两个方法被追加的元素是一个集合的形式(如:.content 可为集合),对每一个元素都进行此追加操作
DOM外部插入after()与before()
before与after都是用来对相对选中元素
<
4000
span>  外部   增加
  相邻的   兄弟节点
两个方法都是都可以接收HTML字符串,DOM
元素,元素数组,或者jQuery对象,用来插入到集合中每个匹配元素的前面或者后面
两个方法都支持多个参数传递after(div1,div2,....) 
after()
*
注:after向元素的后边添加html代码,如果元素后面有元素了,那将后面的元素后移,然后将html代码插入
$(".test1").before('<p style="color:red">before,在匹配元素之前增加</p>', '<p style="color:red">多参数</p>')
before()
*
注:before向元素的前边添加html代码,如果元素前面有元素了,那将前面的元素前移,然后将html代码插入
var haha = $("<p>HaHa</p>");
     $(".test2").after('<p style="color:blue">yi~</p>',haha);
DOM内部插入prepend()与prependTo()
*
(具体用法与append()
appendTo
()相类似,只是插入目标的位置不同);(支持多参数)
prepend()
.prepend()方法将指定元素插入到匹配元素里面作为它的第一个子元素
(如果要作为最后一个子元素插入用.append()).
prependTo()
把所有匹配的元素前置到另一个指定的元素集合中
(前置内容可以是选择器表达式,动态创建的标记, 待插入内容的容器作为参数。)
*
append()向每个匹配的元素内部追加内容
prepend()向每个匹配的元素内部前置内容
appendTo()把所有匹配的元素追加到另一个指定元素的集合中
prependTo()把所有匹配的元素前置到另一个指定的元素集合中
DOM外部插入insertAfter()与insertBefore()
*
(具体用法与after()
before
()相类似,但是不支持多参数)
insertAfter()
内容在方法前面,它将被放在参数里元素的后面
* 例
$('<p style="color:red">测试insertAfter方法增加</p>').insertAfter($(".test2"))
insertBefore()
内容在方法前面,它将被放在参数里元素的前面
* 例
$('<p style="color:red">测试insertBefore方法增加</p>’).insertBefore($(".test1"))
DOM节点删除之empty()
移除子元素(和其他后代元素),同样移除元素里的文本。因为,根据说明,元素里任何文本字符串都被看做是该元素的子节点。
* 例
<div class="hello"><p>慕课网</p></div>
$('.hello').empty()
(结果:<div class="hello"></div>
//<p>慕课网</p>被移除)
DOM节点删除之remove()的有参用法和无参用法
函数的返回值为jQuery类型,返回当前jQuery对象本身。
remove会将元素自身移除,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据。
remove( selector
)
可以传递一个选择器表达式用来过滤将被移除的匹配元素集合,可以选择性的删除指定的节点
DOM节点删除之emptyremove区别
empty()
并不是删除节点,而是清空节点,它能清空元素中的所有后代节点,empty不能删除自己本身这个节点。
remove()
该节点与该节点所包含的所有后代节点将同时被删除
提供传递一个筛选的表达式,删除指定合集中的元素
DOM节点删除之保留数据的删除操作detach()
这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。
$("div").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。
detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象。
detach方法是JQuery特有的,所以它只能处理通过JQuery的方法绑定的事件或者数据
* 例
p = $("p").detach();
$("body").append(p);
DOM节点删除之detach()和remove()区别
detachremove在参数以及效果上使用与实现是相同的,但是detach的事件及数据不会被移除,而remove会。
例如:$("p").detach()这一句会移除对象,仅仅是显示效果没有
了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。
DOM拷贝clone()
.clone()方法
  深度   复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。
clone方法比较简单就是克隆节点,但是需要注意,如果节点有事件或者数据之类的其他处理,我们需要通过clone(ture)传递一个布尔值ture用来指定,这样不仅仅只是克隆单纯的节
点结构,还要把附带的事件与数据给一并克隆了
clone()方法时,在将它插入到文档之前,我们可以修改克隆后的元素或者元素内容,如右边代码我 $(this).clone().css('color','red')
增加了一个颜色
通过传递true,将所有绑定在原始元素上的事件处理函数复制到克隆元素上
clone()方法是jQuery扩展的,只能处理通过jQuery绑定的事件与数据
元素数据(data)内对象和数组不会被复制,将继续被克隆元素和原始元素共享。深复制的所有数据,需要手动复制每一个
DOM替换replaceWith()和replaceAll()
.replaceWith( newContent
):用提供的内容替换集合中   所有
  匹配的元素   并且
  返回   被删除元素的集合
提供的内容可以为HTML字符串,DOM元素,或者jQuery对象
*例 $(“#A”).replaceWith(“<p>newContent!</p>”)
.replaceAll( target
) :用集合的匹配元素替换每个目标元素
.replaceAll()和.replaceWith()功能类似,但是目标和源相反

.replaceWith()与.replaceAll()
方法会删除与节点相关联的所有数据和事件处理程序
.replaceWith()方法,和大部分其他jQuery方法一样,返回jQuery对象,所以可以和其他方法链接使用(此jQuery对象为未替换前的对象)
DOM包裹wrap()方法
.wrap( wrappingElement
):在集合中匹配的每个元素周围包裹一个HTML结构
.wrap( function
) :一个回调函数,返回用于包裹匹配元素的 HTML
内容或 jQuery 对象
*
所匹配的每一个元素都单独包裹一层
DOM包裹unwrap()方法
unwrap()方法
,作用与wrap方法是相反的。将匹配元素集合的父级元素删除,保留自身(和兄弟元素,如果存在)在原来的位置。
*
删掉的只是一层
DOM包裹wrapAll()方法
.wrapAll( wrappingElement
):给   集合
  中匹配的元素增加   一个
  外面包裹HTML结构
.wrapAll( function
) :一个回调函数,返回用于包裹匹配元素的 HTML
内容或 jQuery 对象通过回调的方式可以单独处理每一个元素,相当于warp的处理
DOM包裹wrapInner()方法
如果要将合集中的元素内部所有的子元素用其他元素包裹起来,并当作指定元素的子元素,
.wrapInner( wrappingElement
):给集合中匹配的元素的内部,增加包裹的HTML结构
.wrapInner( function
) :允许我们用一个callback函数做参数,每次遇到匹配元素时,该函数被执行,返回一个DOM元素,jQuery对象,或HTML片段,用来包住匹配元素的内容
jQuery遍历之children()方法
jQuery是一个合集对象,如果想快速查找合集里面的第一级子元素,此时可以用children()方法。
这里需要注意:.children(selector)
方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈,这里可以理解为就是父亲-儿子的关系)
.children()
无参数,匹配所有
.children(".selected")
选择,匹配筛选后的
jQuery遍历之find()方法
jQuery是一个合集对象,如果想快速查找DOM树中的这些元素的后代元素,此时可以用find()方法,这也是开发使用频率很高的方法。
这里要注意 children与find方法的区别,children是父子关系查找,find是后代关系(包含父子关系)
find是遍历当前元素集合中每个元素的后代。只要符合,不管是儿子辈,孙子辈都可以。
与其他的树遍历方法不同,选择器表达式对于 .find()
是 必需
 
的参数。如果我们需要实现对所有后代元素的取回,可以传递通配选择器 '*'。
find只在后代中遍历,不包括自己。
选择器 context
是由 .find() 方法实现的;因此,$('.item-ii').find('li')
等价于 $(‘.item-ii li’)(找到类名为item-ii的标签下的li标签)。
jQuery遍历之parent()方法
jQuery是一个合集对象,如果想快速查找合集里面的每一个元素的父元素(这里可以理解为就是父亲-儿子的关系),此时可以用parent()方法
因为是父元素,这个方法只会向上查找一级
*注意:jQuery是一个合集对象,所以通过parent是匹配合集中每一个元素的父元素
.parent()
无参数,匹配所有
.parent(“:selected”)
选择,匹配筛选后的
同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式
jQuery遍历之parents()方法
jQuery是一个合集对象,如果想快速查找合集里面的每一个元素的所有祖辈元素,此时可以用parents()方法
其实也类似find与children的区别,parent只会查找一级,parents则会往上一直查到查找到祖先节点
parents()
parents(“:selected”)
同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式
*
parents()和.parent()方法是相似的,但后者只是进行了一个单级的DOM树查找
*
$( "html" ).parent()方法返回一个包含document的集合,而$( "html"
).parents()返回一个空集合。
jQuery遍历之closest()方法
closest()方法接受一个匹配元素的选择器字符串
从元素本身开始,在DOM
树上逐级向上级元素匹配,并返回最先匹配的祖先元素
注意:jQuery是一个合集对象,所以通过closest是匹配合集中每一个元素的祖先元素
closest()方法给定的jQuery集合或元素来过滤元素
同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个jQuery的对象
parents()方法与closest()方法区别
起始位置不同:.closest开始于当前元素 .parents开始于父元素
遍历的目标不同:.closest要找到指定的目标,.parents遍历到文档根元素,closest向上查找,直到找到一个匹配的就停止查找,
  parents一直查找到根元素,并将匹配的元素加入集合
结果不同:.closest返回的是包含零个或一个元素的jquery对象,parents返回的是包含零个或一个或多个元素的jquery对象
jQuery遍历之next()方法
jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素紧邻的后面同辈元素的元素集合,此时可以用next()方法
.next()无参数
注意:jQuery是一个合集对象,所以通过next匹配合集中每一个元素的下一个兄弟元素
.next(“:selected”)
 

next()方法选择性地接受同一类型选择器表达式
同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式
jQuery遍历之prev()方法
jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素紧邻的前面同辈元素的元素集合,此时可以用prev()方法
.prev()无参数
取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合
注意:jQuery是一个合集对象,所以通过prev是匹配合集中每一个元素的上一个兄弟元素
.prev(“:selected”)
prev()方法选择性地接受同一类型选择器表达式
同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式
jQuery遍历之siblings()
jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素的同辈元素,此时可以用siblings()方法
siblings()无参数
取得一个包含匹配的元素集合中每一个元素的同辈元素的元素集合
注意:jQuery是一个合集对象,所以通过siblings是匹配合集中每一个元素的同辈元素
siblings(“:selected”)
siblings()方法选择性地接受同一类型选择器表达式
同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式
  jQuery遍历之add()方法
jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。$()之后就意味着这个合集对象已经是确定的
如果后期需要再往这个合集中添加一新的元素要如何处理?jQuery为此提供add方法,用来创建一个新的jQuery对象
,元素添加到匹配的元素集合中
jQuery遍历之each()
jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。比如我们操作$("li").css('')
给所有的li设置style值,因为jQuery是一个合集对象,
所以css方法内部就必须封装一个遍历的方法,被称为隐式迭代的过程。要一个一个给合集中每一个li设置颜色,这里方法就是each
.each()
方法就是一个for循环的迭代器,它会迭代jQuery对象合集中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数
* each是一个for循环的包装迭代器
each通过回调的方式处理,并且会有2个固定的实参,索引与元素
each回调方法中的this指向当前迭代的dom元素
*
这样可以在循环体会做一些逻辑操作了,如果需要提前退出,可以以通过返回 false以便在回调函数内中止循
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: