jQuery 插入内容

在本教程中,你将学习如何使用 jQuery 将新元素或内容插入到文档中。

jQuery 插入新内容

jQuery 提供了几种方法,比如 append()prepend()html()text()before()after()wrap() 等,使我们能够插入现有元素中的新内容。

jQuery html()text() 方法已在前一章中介绍过,因此在本章中,我们将讨论其余的内容。

jQuery append() 方法

jQuery append() 方法用于将内容插入所选元素的末尾。

以下示例将向文档就绪的所有段落附加一些 HTML,而在按钮单击时将一些文本附加到容器元素。

<script type="text/javascript">
$(document).ready(function(){
    // Append all paragraphs
    $("p").append(' <a href="#">read more...</a>');
    
    // Append an element with ID container
    $("button").click(function(){
       $("#container").append("This is demo text.");
    });
});
</script>

注意: 使用 jQuery append()prepend() 方法插入的内容或元素将添加到所选元素中。

jQuery prepend() 方法

prepend() 方法用于将内容插入所选元素的开头。

以下示例将在文档准备好的所有段落之前添加一些 HTML,而在按钮单击时将一些文本添加到容器元素。

<script type="text/javascript">
$(document).ready(function(){
    // Prepend all paragraphs
    $("p").prepend("<strong>Note:</strong> ");
    
    // Prepend an element with ID container
    $("button").click(function(){
       $("#container").prepend("This is demo text.");
    });
});
</script>

使用 append()prepend() 方法插入多个元素

jQuery append() 并且 prepend() 还支持传入多个参数作为输入。

在下面的示例中的 jQuery 代码将在 <body> 元素内插入 <h1><p><img> 元素来作为最后的三个子节点元素。

<script type="text/javascript">
$(document).ready(function(){
    var newHeading = "<h1>Important Note:</h1>";
    var newParagraph = document.createElement("p");
    newParagraph.innerHTML = "<em>Lorem Ipsum is dummy text...</em>";
    var newImage = $('<img src="images/smiley.png" alt="Symbol">');
    $("body").append(newHeading, newParagraph, newImage);
});
</script>

jQuery before() 方法

jQuery before() 方法用于在所选元素之前插入内容。

以下示例将在文档就绪的容器元素之前插入一个段落,而在按钮单击时在 <h1> 元素之前插入一个图像。

<script type="text/javascript">
$(document).ready(function(){
    // Add content before an element with ID container
    $("#container").before("<p>&mdash; The Beginning &mdash;</p>");
    
    // Add content before headings
    $("button").click(function(){
        $("h1").before('<img src="images/marker-left.gif" alt="Symbol">');
    });
});
</script>

注意: 使用 jQuery before()after() 方法插入的内容或元素将添加到所选元素之外。

jQuery after() 方法

jQuery after() 方法用于在所选元素之后插入内容。

以下示例将在文档就绪的容器元素之后插入一个段落,而在按钮单击上的 <h1> 元素之后插入一个图像。

<script type="text/javascript">
$(document).ready(function(){
    // Add content after an element with ID container
    $("#container").after("<p>&mdash; The End &mdash;</p>");
    
    // Add content after headings
    $("button").click(function(){
        $("h1").after('<img src="images/marker-right.gif" alt="Symbol">');
    });
});
</script>

使用 before()after() 方法插入多个元素

jQuery before()after() 还支持传入多个参数作为输入。下面的例子将在 <p> 元素之前插入 <h1><p><img>

<script type="text/javascript">
$(document).ready(function(){
    var newHeading = "<h2>Important Note:</h2>";
    var newParagraph = document.createElement("p");
    newParagraph.innerHTML = "<em>Lorem Ipsum is dummy text...</em>";
    var newImage = $('<img src="images/smiley.png" alt="Symbol">');
    $("p").before(newHeading, newParagraph, newImage);
});
</script>

jQuery wrap() 方法

jQuery wrap() 方法用于围绕所选元素包装 HTML 结构。

下面的示例将在文档就绪后使用类 .wrapper 将整个容器元素包装在 <div> 元素内,首先使用 <b> 元素包装段元素的所有内部内容,然后再用 <em> 元素来。

<script type="text/javascript">
$(document).ready(function(){
    // Wrap elements with class container with HTML
    $(".container").wrap('');
    
    // Wrap paragraph's content with HTML
    $("button").click(function(){
        $("p").contents().wrap("<em><b></b></em>");
    });
});
</script>