0Pricing
jQuery Academy · 课时

jQuery DOM 操作 - 2

jQuery DOM 操作 - 2

jQuery DOM 操作 - 2 是 CoddyKit 上的免费 jQuery Academy 课时。 这是第 1 节课,共 1 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 jQuery Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 jQuery Academy 课程共包含 1 节课。

本课时的部分内容尚未翻译,以英文显示。

简介与 append

您好,

到目前为止,在示例中我们已经对 HTML DOM 对象执行了更新或读取操作。 

接下来我们将学习如何使用 append() 方法执行插入操作。

让我们来看一个示例。

<button id="add">
     Add New Item
</button>		
<div id="target"></div>

<script>
  
/*
  Listen for an element with 
  the add id click
  */
  $('#add').click(function(){

  /*
  append '<p>This is the appended 
  text</p>' to #target element
  */
  $("#target").append("<p>Appended text</p>");
})
</script>

append

运行上述代码后,append 方法会将 HTML(作为参数传入)的代码添加到#test 元素的末尾。

prepend

prepend() 方法

append() 方法的相反操作是 prepend() 方法。append() 方法会将内容添加到目标元素内容的末尾,而 prepend 会将内容添加到开头。

<div id="target"></div>

<button id="add">
     Add New Item
</button>		

<script>

/*
Listen for an element 
with the add id click
*/
$('#add').click(function(){

 /* append '<p>This is the prepended text</p>' 
    to #target element
*/
   $("#target").prepend("<p>This is the appended text</p>");
})

</script>

问题

通过 append 和 prepend 方法,我们可以在目标元素的末尾和开头添加新的 HTML 元素。

那么,如果我们想将元素添加为目标元素的同级元素,应该怎么做呢?

示例

让我们继续之前的示例。

第一种情况下,我们的 HTML 节点如下。

<div id="test">
     <p>initial paragraph</p>
</div>

after - before 方法

after() 和 before() 方法

我们可以使用 after() 和 before() 方法,在目标元素之前或之后添加 HTML 元素。

在下面的示例代码中,我们在同级元素层次结构中,将新元素添加到了 id 为 #test 的元素正前方和正后方。

<div id="test">
     <p>initial paragraph</p>
</div>

<script>
$('#test').before('<p>I am before the #test element</p>');
$('#test').after('<p>I am after the #test element</p>');
</script>

多项插入

到目前为止,我们已经学习了 prepend()、append()、before() 和 after() 方法。还有一个主题我忘了解释。很抱歉,我有时会忘记事情 😇。

那么,如果我们想同时添加多个节点,该怎么做呢?

如下方示例所示, 

我们可以向相关方法传入多个参数,从而同时添加多个节点。

<p>
<span id="target"></span>
</p>
<script>
var firstNode = '<p id="first-node">First node</p>';
var secondNode = '<p id="first-node">Second node</p>';
var thirdNode = '<p id="first-node">Third node</p>';

/*
The following four methods work 
with the same logic and take 
more than one argument.
*/

 $('#target').before(firstNode, secondNode, thirdNode);
 $('#target').after(firstNode, secondNode, thirdNode);
 $('#target').append(firstNode, secondNode, thirdNode);
 $('#target').prepend(firstNode, secondNode, thirdNode);

</script>

链式调用示例

在上面的示例中,我们同时添加了多个节点。正如您所见,即使使用的是不同的方法,语法也会保持不变。

此外,我们还可以通过修改 jQuery 的写法来编写代码。 

这样,我们就能写出更短、更高效的代码。

让我们来看一个示例,学习如何在 jQuery 中编写链式代码。

<p id="test"></p>

<script>
var firstNode = '<p id="first-node">First node</p>';
var secondNode = '<p id="first-node">Second node</p>';
var thirdNode = '<p id="first-node">Third node</p>';

/*
We made our code shorter.
Also, we have done the select operation 
on the DOM only once instead of twice.
*/
$('#test').before(firstNode, secondNode, thirdNode)
	    .after(firstNode, secondNode, thirdNode);

</script>

wrap 方法

wrap() 方法

如果我们想把 HTML 元素放入另一个容器中,应该使用什么方法呢?

当然是使用 wrap() 方法。

下面的示例展示了 wrap 方法的简单用法。

<div id="target"></div>

<script>
/*
When we apply the code below. 
The node we assigned as an argument 
will come around our target element.
*/
$("#target").wrap('<div class="container">Container wrapped the target element</div>');

//The result will be as follows
/*
<div class="container">
  Container wrapper the target element
  <div id="target">
  </div>
</div>
*/
</script>

Question

unwrap 方法

unwrap() 方法

它是 wrap() 方法的相反操作。使用 unwrap() 方法,我们可以删除目标元素的父元素。

const $ = (selector) => ({
    unwrap: () => console.log(`Unwrapped ${selector}`)
});
$("#target").unwrap();

empty 方法

empty() 方法

让我们看看如何删除 HTML 元素中的内容。

使用 empty() 方法,我们可以删除目标元素的所有子元素和后代元素。

// Removes all descendants of the element from the DOM.
// (Simulated for Node.js environment)
const $ = (selector) => ({
  empty: () => console.log(`Removed all descendants of ${selector}`)
});
$("#target").empty();

remove() 方法

remove() 方法

remove() 方法不仅会删除元素的后代元素,还会将元素本身从 DOM 中删除。

/*
Removes the element and 
all descendants of the element from the DOM.
*/
$('#target').remove();

恭喜

恭喜您 🎉

我们学习了 DOM 操作。

下一节中,我们将学习使用 jQuery 设置样式。

jQuery DOM 操作 - 2 — 插图 14

常见问题解答

「jQuery DOM 操作 - 2」课时是免费的吗?

是的 — 「jQuery DOM 操作 - 2」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 jQuery Academy 课程的其余内容,请升级到 CoddyKit PRO。 jQuery Academy 课程共包含 1 节课。

「jQuery DOM 操作 - 2」这节课中我会学到什么?

jQuery DOM 操作 - 2 你通过在浏览器中直接运行的动手代码来练习 jQuery Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 jQuery Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 jQuery Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 1 节。

「jQuery DOM 操作 - 2」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 jQuery Academy 课中编写并运行代码吗?

能。每节 jQuery Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

← 返回 jQuery Academy