美文网首页
jQuery粗略源码解析7 DOM遍历和操作

jQuery粗略源码解析7 DOM遍历和操作

作者: 波拉拉 | 来源:发表于2020-02-27 22:24 被阅读0次

1 DOM遍历

  • .parent() :匹配元素中每个元素的父元素,可以传入选择器过滤。
  • parents():匹配元素的祖父元素,可以传入选择器过滤。
  • parentsUntil() 匹配元素的祖父元素直到为止,可以传入选择器过滤。
<div>
    <p>HAHA
        <a>连接</a>
    </p>
    <span>bolala</span>
</div>
<div>
    <span>hashiqi</span>
</div>
<script>
    console.log($("span,p").parent());//两个DIV
    console.log($("a").parents());//p div body html
    console.log($("a").parentsUntil("body"));//p div
</script>
  • next() 之后紧邻的元素
  • nextAll() 之后的所有兄弟元素
  • nextUntil() 之后的所有兄弟元素直到为止
  • prev() 之前紧邻的元素
  • prevAll() 之前的所有兄弟元素
  • prevUntil() 之前的所有兄弟元素直到为止
  • sibling() 其他的兄弟元素
<ul>
    <li id="1"></li>
    <li id="2"></li>
    <li id="3"></li>
    <li id="4"></li>
    <li id="5"></li>
</ul>
<script>
    console.log($("#2").next());//#2
    console.log($("#2").nextAll());//#3 #4 #5
    console.log($("#2").nextUntil("#4"));//#3
    console.log($("#5").prev());//#4
    console.log($("#5").prevAll());//#4 #3 #2 #1
    console.log($("#5").prevUntil("#1"));//#4 #3 #2
    console.log($("#2").siblings())//#1 #3 #4 #5
</script>
  • children() 匹配元素的子元素,可以传入选择器过滤。
  • contents() 匹配元素的子元素,包括文本节点和注释节点,可以传入选择器过滤。
<div>
    <ul>
        <li>链接1<a href="">haha</a></li>
        <li>链接2<a href="">bolala</a></li>
    </ul>
</div>
<script>
    console.log($("li:first").children());//链接
    console.log($("li:first").contents());//文本和链接
</script>

2 DOM操作

2.1 插入
  • append() appendTo() 内部末尾添加
  • prepend() prependTo() 内部前置添加
  • after() insertAfter() 末尾添加
  • before insertBefore() 前置添加
  • html() 获取或插入html
  • text() 获取或插入文本内容
<ul>
    <li></li>
    <li></li>
    <li>选项三</li>
    <li>选项四</li>
</ul>
<script src="../jquery-1.7.1.js"></script>
<script>
    $("li:first").append("第一项");
    $("<a>连接2</a>").appendTo($("li:eq(1)"));
    $("li:eq(2)").prepend("新添:");
    $("><p>新添加:</p>").prependTo($("li:eq(3)"));
    $("ul").after("<h3>haha</h3>").before("hashiqi");
    console.log($("h3").html("<p>帅哥</p>").text());
</script>
2.2 删除
  • remove() 删除匹配元素,数据,事件
  • empty() 移除后代元素,数据,事件
  • detach() 移除匹配元素,保留数据和事件
2.3 克隆
  • clone() 复制 DOM元素
<div><p>bolala</p></div>
<div></div>
<script src="../jquery-1.7.1.js"></script>
<script>
   $("p").clone().prependTo("div:eq(1)");
</script>
2.4 替换
  • replaceWith() replaceAll() 替换
<ul>
    <li id="1">选项1</li>
    <li id="2">选项2</li>
    <li id="3">选项3</li>
    <li id="4">选项4</li>
</ul>
<script src="../jquery-1.7.1.js"></script>
<script>
    $("#4").replaceWith($("#1"));//用1替换4
    $("#2").replaceAll($("#3"));//2替换3
</script>
2.5 包裹元素
  • wrap() 包裹每个匹配的元素
  • wrapAll() 用单个元素包裹所有匹配的元素
  • wrapInner() 包裹每个匹配元素的内容
  • unwrap() 移除父元素
<div>
    <a href="">连接1</a>
    <a href="">连接2</a>
    <a href="">连接3</a>
    <a href="">连接4</a>
</div>
<script>
    $("a").wrapInner("<b></b>").wrap("<li></li>");
    $("li").wrapAll("<ul></ul>");
    $("ul").unwrap()
</script>

相关文章

网友评论

      本文标题:jQuery粗略源码解析7 DOM遍历和操作

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