jQuery 文档处理:替换

🎉摘要:本文将详细介绍 jQuery 的文档替换方法,通过本文可快速掌握 replaceWith() 与 replaceAll() 的用法。清晰说明 jQuery 文档操作中 DOM 元素替换、批量替换的实现逻辑,新手快速上手。

jQuery 的替换方法用于将匹配的元素直接替换为指定内容,主要包含 replaceWith() 和 replaceAll() 两个方法,常用于动态更新页面元素、替换失效内容、批量更新 DOM 结构等场景,下面结合示例详细讲解。

替换方法

replaceWith(content|fn)

用于将每个匹配的元素替换为指定内容(原元素会被移除,新内容取而代之)。语法:

$(被替换的元素).replaceWith(新内容)

参数:

  • content:HTML 字符串、DOM 元素、jQuery 对象(甚至可以是空值,用于删除元素)。

  • fn:回调函数,返回要替换的内容(index为元素索引,html为原元素的 HTML 内容)。

示例:

<div class="container">
    <div class="inner">Hello</div>
    <div class="inner">Goodbye</div>
</div>
<div id="wrap" class="wrap">替换后的元素</div>

运行代码:

$('.inner').replaceWith($('#wrap'))

将所有类为 inner 的元素使用 id 为 wrap 的元素进行替换,效果如下:

<div class="container">
    <div id="wrap" class="wrap">替换后的元素</div>
    <div id="wrap" class="wrap">替换后的元素</div>
</div>

replaceAll(selector)

该方法的作用和 replaceWith 方法完全一致(替换目标元素),但调用主体和目标位置互换(相当于“用新内容替换所有匹配的目标元素”)。语法:

$(新内容).replaceAll(被替换的元素选择器)

示例:

<div class="container">
    <div class="inner">Hello</div>
    <div class="inner">Goodbye</div>
</div>
<div id="wrap" class="wrap">替换后的元素</div>

运行代码:

$('#wrap').replaceAll('.inner')

将所有类为 inner 的元素使用 id 为 wrap 的元素进行替换,效果如下:

<div class="container">
    <div id="wrap" class="wrap">替换后的元素</div>
    <div id="wrap" class="wrap">替换后的元素</div>
</div>

完整示例

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

示例:

<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; }
        h3 { font-size: 18px; }
        .container { border: 1px solid blue; padding: 10px; }
        .inner { border: 1px solid red; padding: 10px; margin: 5px; }
        .wrap { box-shadow: inset 0 0 3px green; padding: 5px; margin: 5px; }
    </style>
</head>
<body>

    <div class="app">
        <h3>替换</h3>
        <div class="container">
            <div class="inner">Hello</div>
            <div class="inner">Goodbye</div>
        </div>
        <div id="wrap" class="wrap">替换后的元素</div>
    </div>

    <div>
        <!-- replaceWith(content|fn) 将所有匹配的元素替换成指定的HTML或DOM元素 -->
        <button type="button" onclick="
                // 替换所有 .inner 的元素为 #wrap
                $('.inner').replaceWith($('#wrap'))
            ">$('.inner').replaceWith($('#wrap'))</button>

        <!-- replaceAll(selector) 用匹配的元素替换掉所有 selector匹配到的元素 -->
         <button type="button" onclick="
                // 将 #wrap 替换掉所有 .inner
                $('#wrap').replaceAll('.inner')
            ">$('#wrap').replaceAll('.inner')</button>
    </div>
    
</body>
</html>

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

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

  

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