jQuery 文档处理:内部插入

🎉摘要:本文将介绍 jQuery 内部插入方法,通过本文掌握 append ()/appendTo ()、prepend ()/prependTo () 的用法、语法差异及示例。清晰区分 jQuery 文档操作中内部末尾 / 开头插入内容的实现方式,新手也能快速上手。

在 jQuery 中,内部插入方法用于将指定内容添加到目标元素的内部(作为子元素),核心方法包含 append()/appendTo()、prepend()/prependTo() 四组方法,下面我会用代码示例逐一讲解。

内部插入

append(content|fn)

用于把内容追加到每个匹配元素的内部末尾(即最后一个子元素)。语法:

$(目标元素).append(要插入的内容)

参数:

  • content:可以是 HTML 字符串、DOM 元素、jQuery 对象;

  • fn(index, html):回调函数,返回要插入的内容(index是元素索引,html是元素当前内部 HTML)。

示例:

<ul class="my_ul">
    <li>喜欢熬夜</li>
</ul>

运行代码:

$('.my_ul').append('<li class=\'myClass\'>喜欢吃夜宵</li>')

<ul> 将变成如下:

<ul class="my_ul">
    <li>喜欢熬夜</li>
    <li class='myClass'>喜欢吃夜宵</li>
</ul>

appendTo(content)

该方法和 append() 功能完全一致(将内容插入到目标内部末尾),但调用主体和目标位置互换(相当于“把内容追加到目标里”)。语法:

$(要插入的内容).appendTo(目标元素)

更符合 “内容主动找目标” 的语义,结果和 append() 完全相同。

示例:

// 下面语句和上面 append 效果一致
$('<li class=\'myClass\'>喜欢吃夜宵</li>').appendTo('.my_ul');

prepend(content|fn)

用于把内容插入到每个匹配元素的内部开头(相当于子元素的第一位)。语法:

$(目标元素).prepend(要插入的内容)

示例:

<ul class="my_ul">
    <li>喜欢熬夜</li>
</ul>

执行代码:

$('.my_ul').prepend('<li class=\'myClass\'>喜欢吃夜宵</li>')

<ul> 将变成如下:

<ul class="my_ul">
    <li class='myClass'>喜欢吃夜宵</li>
    <li>喜欢熬夜</li>
</ul>

prependTo(content)

该方法和 prepend 功能完全一致(内容插入到目标内部开头),主要区别是调用主体和目标位置互换。语法:

$(要插入的内容).prependTo(目标元素)

示例:

// 下面代码和上面 prepend 效果一致
$('<li class=\'myClass\'>喜欢吃夜宵</li>').prependTo('.my_ul');

方法对比

快速对比上面介绍的几个方法:

方法插入位置语法结构
append目标内部末尾目标.append (内容)
appendTo目标内部末尾内容.appendTo (目标)
prepend目标内部开头目标.prepend (内容)
prependTo目标内部开头内容.prependTo (目标)

完整示例

下面示例通过“点击自己动手试一试”可以尝试各种方法的效果:

示例:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JQeury 教程</title>
    <!-- 引入 jQuery 库 -->
    <script type="text/javascript" src="https://www.hxstrive.com/cdn/libs/jquery/3.7.1/jquery.min.js"></script>
    <!-- 引入 loglevel 库,方便在 DOM 中打印日志 -->
    <script src="https://www.hxstrive.com/preview_code/libs/custom_loglevel.js"></script>
    <style>
        button { background: #EEE !important; border: 1px solid #ccc !important; 
            min-width: 40px; padding: 5px; margin: 5px; cursor: pointer; }
        sup {color: red; font-size: 12px; background: transparent !important;}
        ul li { margin: 3px 0;}
        h3 { font-size: 18px; }
        form { border:solid 1px blue; box-sizing: border-box; padding: 10px;}
        p { border:solid 1px green; box-sizing: border-box; padding: 10px; }
        li { border:solid 1px red; box-sizing: border-box; padding: 10px; }
        /* 效果 */
        .myClass {
            box-shadow: inset 0 0 5px red;
        }
    </style>
</head>
<body>

    <div class="app">
        <h3>内部插入</h3>
        <form>
            <p>我的缺点:</p>
            <ul class="my_ul">
                <li>喜欢熬夜</li>
            </ul>
        </form>
    </div>

    <div>
        <!-- append(content|fn) 向每个匹配的元素内部追加内容 -->
        <button type="button" onclick="
                $('.my_ul').append('<li class=\'myClass\'>喜欢吃夜宵</li>');
            ">append(content|fn) 追加到末尾</button>
        
        <!-- appendTo(content) 把所有匹配的元素追加到另一个指定的元素集合中 -->
        <button type="button" onclick="
                $('.my_ul').appendTo('p');
            ">appendTo(content)</button>
        
        <!-- prepend(content|fn) 向每个匹配的元素内部前置内容。 -->
        <button type="button" onclick="
                $('.my_ul').prepend('<li class=\'myClass\'>喜欢吃夜宵</li>');
            ">prepend(content|fn) 追加到前面</button>

        <!-- prependTo(content) 把所有匹配的元素前置到另一个、指定的元素集合中 -->
        <button type="button" onclick="
                $('.my_ul').prependTo('p');
            ">prependTo(content)</button>
    </div>
    
</body>
</html>

看看效果👉自己动手试一试 »

更多关于 jQuery 的知识请阅读后续教程。

  

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号