三、jquery中的元素操作

三、jquery中的元素操作

3.1 创建元素

可以使用$()函数的功能来创建元素

1
var $div = $("<div class='aaa', id='aaa', data-info='nihao'>今天天气很好</div>");

Umig58.png

3.2 上树

  • jquery中的上树方法有很多种,可以是:

    • 父元素选择子元素

    • 子元素选择父元素

    • 兄弟选择兄弟

3.2.1 父元素选择子元素

  • $(box).append(selector|jquery|element):往父元素的后面追加元素

  • $(box).prepend(selector|jquery|element):往父元素的前面追加元素

1
2
3
4
5
6
7
8
9
10
11
12
13
// 父元素选择子元素,追加到后面
var $list = $("#list");

// 原生元素
var li = document.createElement("li");
// 添加内部文本
li.innerHTML = 1;
$list.append(li);

// jquery对象
$list.append($("<li>2</li>"));
// html
$list.append("<li>3</li>");

Umib5T.png

1
2
3
4
5
6
7
8
9
10
11
12
13
// 父元素选择子元素,追加到前面
var $list = $("#list");

// 原生元素
var li = document.createElement("li");
// 添加内部文本
li.innerHTML = 1;
$list.prepend(li);

// jquery对象
$list.prepend($("<li>2</li>"));
// html
$list.prepend("<li>3</li>");

UmF9Vx.png

3.2.2 子元素选择父元素

  • $(box).appendTo(selector|jquery|element):往父元素的后面追加元素

  • $(box).prependTo(selector|jquery|element):往父元素的前面追加元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 子元素选择父元素,追加到后面
var $list = $("#list");

var $li1 = $("<li>1</li>");
var $li2 = $("<li>2</li>");
var $li3 = $("<li>3</li>");

// 原生元素
$li1.appendTo(document.getElementById("list"));

// jquery对象
$li2.appendTo($("#list"));

// 选择器
$li3.appendTo("#list");

UmFJMj.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 子元素选择父元素,追加到前面
var $list = $("#list");

var $li1 = $("<li>1</li>");
var $li2 = $("<li>2</li>");
var $li3 = $("<li>3</li>");

// 原生元素
$li1.prependTo(document.getElementById("list"));

// jquery对象
$li2.prependTo($("#list"));

// 选择器
$li3.prependTo("#list");

UmF9Vx.png

结构:

1
2
3
4
5
6
7
8
9
10
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li id="four">4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>

执行代码:

1
2
3
4
5
// 创建一个li
var $li = $("<li>111</li>");

// 将li插入到four的前面作为它的兄弟节点存在
$li.insertBefore($("#four"));

UmF2e1.png

1
2
3
4
5
// 创建一个li
var $li = $("<li>111</li>");

// 将li插入到four的后面作为它的兄弟节点存在
$li.insertAfter($("#four"));

UmFhFK.png

3.2.3 兄弟之间的插入

1
2
3
4
5
6
7
// 在four的后面插入某个元素
var $four = $("#four");
$four.after("<p>哈哈哈,我是一个p元素</p>");


// 在four的前面插入某个元素
$four.before("<div>呵呵,我是一个div</div>");

UmF5WD.png

3.3 wrap

wrap 让某个元素的外层多一层元素

结构:

1
2
3
4
5
<p>A</p>
<p>B</p>
<p>C</p>
<p>D</p>
<p>E</p>

执行代码:

1
2
// wrap 让某个元素的外层多一层元素
$("p").wrap("<div></div>");

UmF7yd.png

3.4 wrapAll

wrapAll 让所有元素的外层多一层元素

1
2
// wrapAll 让所有元素的外层多一层元素
$("p").wrapAll("<div></div>");

UmFxfS.png

3.5 unwrap

unwrap 将匹配到的元素去掉一层父元素

1
2
3
4
5
6
7
8
9
10
11
<p>A</p>
<p>B</p>
<p>C</p>
<div id="box">
<p id="p1">我是一个p标签</p>
</div>
<p>D</p>
<p>E</p>

// unwrap 将匹配到的元素去掉一层父元素
$("#p1").unwrap();

Umk9yj.png

3.6 replaceWith和replaceAll

结构:

1
2
3
4
5
<p>A</p>
<p>B</p>
<p>C</p>
<p>D</p>
<p>E</p>

执行代码:

1
2
// replaceWith 将匹配到的元素替换掉指定元素
$("p").replaceWith("<div>123</div>");

UmkVYT.png

1
2
// replaceAll 将指定的元素替换掉匹配的元素
$("<div>456</div>").replaceAll($("p"));

Umknl4.png

3.7 empty、remove

结构:

1
2
3
4
5
6
7
8
<div id="box">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>

执行代码:

1
2
// empty 表示清空后代,但是自己还在
$("#box").empty();

UmkJfO.png

1
2
// remove 表示自杀,自己和后代都没有了
$("#box").remove();

UmkQmR.png

3.8 clone

  • clone(boolean)

    • boolean:是一个布尔值

    • 默认是false的时候,天生连同自己的后代一同复制

    • true的时候,连同事件一起复制

UmkB7t.png

结构:

1
2
3
4
5
6
7
8
<div id="box">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>

执行代码:

1
2
// 使用clone 复制box
$("#box").after($("#box").clone());

Umkc9S.png

1
2
3
4
5
// 使用clone 传递参数true
$("#box").click(function(){
alert(123);
});
$("#box").after($("#box").clone(true));

UMAFbQ.png

点击查看

本文标题:三、jquery中的元素操作

文章作者:Mango

发布时间:2020年07月13日 - 22:16:09

最后更新:2020年07月15日 - 13:28:06

原始链接:https://mango185.github.io/post/4ce50e01.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------