JQuery的DOM操作

news/2024/9/19 8:05:07/文章来源:https://www.cnblogs.com/njhwy/p/18401492

JQuery基础教程第四版

 第五章:DOM操作方法的简单归纳

使用JQuery的DOM操作实现以下功能

    1.创建新元素

      2.插入新元素

      3.移动元素

      4.包装元素

      5.复制元素

相关代码

HTML文件

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="six.css">
    <script src="../js/jquery-3.4.1.js"></script>
</head>
<body>
    <script>
          $(document).ready(function(){
            //遍历<div class='chapter'>中的每个链接,并逐个为它们添加属性
            $('div.chapter a[href*="baidu.com"]').attr({
                    rel:'external',
                    // title:'learn more at wikipedia',
                    title:function(){
                        //在值回调函数中, this指向每次回调时正在操作的那个DOM元素。
                        return 'Learn more about '+$(this).text()+'at Baidu';
                    },
                    //值回调:给参数传递一个函数,而不是具体的值
                    //这个函数会针对匹配的元素集中的每个元素都调用一次,
                    //调用后的返回值将作为属性的值
                    //index:代表迭代次数
                    id:function(index,oldValue){
                        return 'wikilink-'+index;
                    }
                });
                //insertAfter在指定元素的外部插入内容,元素外部的前面
                $('<a href="#top">back to top</a>').insertAfter('div.chapter p');
                //prependTo在指定元素的内部插入内容,元素内部的前面
                $('<a id="top"></a>').prependTo('body');
                //取得页面中某个位置上的元素,将它们插入到另一个位置上
                // $('span.footnote').insertBefore('#footer')
                //把所有脚注都包装到一个<ol>中
                // .wrapAll('<ol id="notes"></ol>')
                //把每个脚注都包装到自己的<li>中
                // .wrap('<li></li>');
                //包装元
                var $notes=$('<ol id="notes"></ol>').insertBefore('#footer');
                $('span.footnote').each(function(index){
                    // $('<sup>'+(index+1)+'</sup>').insertBefore(this);
                    //  $(this).appendTo($notes).wrap('<li></li>');
                    //反向插入方法
                    // $(this).before('<sup>['+(index+1)+']</sup>')
                    //        .appendTo($notes)
                    //        .wrap('<li></li>');
                    $(this).before([
                        '<a href="#footnote-',
                        index+1,
                        '" id="context-',
                        index+1,
                        '" class="context">',
                        '<sup>',
                         index+1,
                        '</sup></a>',
                    ].join(''))
                    .appendTo($notes)
                    .append([
                        '&nbsp;(<a href="#context-',
                        index+1,
                        '">context</a>)'
                    ].join(''))
                    .wrap('<li id="footnote-'+(index+1)+'"></li>');
                    //复制元素
                    $('div.chapter p:eq(0)').clone().insertBefore('div.chapter');
                });
                $('span.pull-quote').each(function(index){
                    var $parentParagraph=$(this).parent('p');
                    $parentParagraph.css('position','relative');
                    var $clonedCopy=$(this).clone();
                    $clonedCopy
                    .addClass('pulled')
                    //find()找到<span class='drop'>元素集合
                    .find('span.drop')
                    //.html将内容改为...,会返回匹配元素中的html标记
                    .html('&hellip;')
                    //返回内部jQuery栈中之前选中的元素
                    .end()
                    //.text()取得内容时,所有的html标签都将被忽略,
                    //而所有HTML实体也会被转换成对应的字符
                    .text($clonedCopy.text())
                    .prependTo($parentParagraph);
                });
          });
         
    </script>
    <h1 id="f-title">Lorem, ipsum periam sed ab commodi aliquam ipsum et?</h1>
    <div id="f-author">Lorem ipsum dolor sit amet consec</div>
    <h2>Lorem ipsum dolor sit, amet consectetur</h2>
    <h3>Lorem ipsum dolor sit amet</h3>
    <div class="excerpt">an excerpt</div>
    <div class="chapter">
        <p class="square">
            <span class="pull-quote">It is a Law of Nature <span class="drop">with us</span>
               that a male  child shall have <strong> one more side</strong>than this father
           </span>
            Lorem ipsum dolor, sit amet consectetur adipisicing elit.<span class="footnote">
                Lorem ipsum dolor sit amet consectetur adipisicing elit.
            </span> Illo cum dignissimos possimus quasi consectetur voluptatem asperiores veritatis eos reprehenderit animi doloremque amet quibusdam, accusamus delectus earum, soluta beatae. Dolor, tempore!
            Quia quam ut ipsum laudantium voluptatem itaque natus eum inventore magnam dolorum odio at hic tempora corporis enim blanditiis facere saepe, velit nihil ipsam. Obcaecati, nobis. Sapiente odit expedita ad.
            Magnam adipisci quidem nam quae, rem perferendis sequi iste, illo nihil sint ad est libero laborum consectetur voluptas dolor fugiat ipsa inventore. Nobis obcaecati in, adipisci ducimus tempore qui placeat.
            Officiis, quod?<a href="http://www.baidu.com">feefefefffffffffffffffffffff</a> Consequatur autem quibusdam cum voluptates sit, quam voluptate quis, quod ex labore qui molestiae a sunt? Iste provident placeat ipsum possimus laboriosam quaerat. Laudantium inventore labore nesciunt deserunt?
            Eius, vel? Magni eaque sapiente accusantium odio sit quod impedit suscipit, obcaecati ullam error, illo doloremque a totam, corporis pariatur. Modi ducimus esse inventore, aut nemo ex quis maiores corporis.
            Dolorem quo dicta minus? Sunt iste asperiores est minima mollitia molestiae iure fugit ipsum libero veniam error esse cupiditate rem modi blanditiis voluptatem natus aut, tenetur nam sint quo hic.
            Quaerat sequi ullam architecto l<a href="http://www.baidu.com">fffffffffffffffffffffffffffff</a>audantium. Magni deleniti itaque maiores ratione, molestias doloribus! Sit in quam harum nihil laboriosam enim? Ut cum sit officiis explicabo sapiente blanditiis eveniet atque dicta consequuntur!
            Dolorem amet dolor quod atque, nobis aspernatur error totam dicta quisquam vero eos incidunt fuga. Tenetur quisquam quae, qui fugiat magni cum, ipsum vitae repellendus, expedita soluta autem iusto! Quasi.
        </p>
     
        <p class="nobility hexagon">Lorem ipsum, dolor sit amet consectetur adipisicing elit. Inventore possimus eaque cum qui labore maxime nostrum ipsa reiciendis, modi voluptatem. Provident quia animi rerum cupiditate placeat delectus exercitationem eius doloremque?
        Magnam delectus fugit vero blanditiis porro sint nam aliquam fugiat voluptatibus quod tenetur ab temporibus, asperiores unde placeat provident assumenda dolor quo numquam pariatur, tempora corrupti eum labore ex. Placeat.
        Obcaecati, qui incidunt. Libero eius ullam neque, o<a href="http://www.baidu.com">feeeeeeeeeeeeeeeeeeeeeee</a>dio eum cumque voluptatibus quis temporibus quae maiores consectetur expedita laborum cupiditate quod ut natus. Illum eum quo aspernatur culpa tempore veniam sed.
        Quidem, laborum cupiditate, <span class="footnote">
            Lorem ipsum dolor sit amet consectetur adipisicing
        </span>voluptatum quo libero blanditiis dicta praesentium provident eaque consequatur debitis veritatis aperiam hic expedita natus. Architecto consequuntur tempore totam beatae excepturi nulla quidem vitae quia doloribus dolores.
        Dolor quisquam nesciunt dolorum debitis voluptas repellat error ab natus corporis iusto illum, quod aperiam sint eius id quam. Vitae eaque fuga, quam minus voluptatum labore nulla ipsam veritatis odit.</p>
        <p>
            <span class="pull-quote">Lorem ipsum dolor sit amet consectetur<span class="drop"> Lorem ipsum dolor sit amet</span> adipisicing elit. Aliquam, nulla! Itaque mollitia totam animi ut dolorum accusamus, magni quisquam aliquam eveniet cum ipsam optio, aut ipsa. Quasi atque nulla architecto.</span>
            consectetur adipisicing elit. P<a href="http://www.baidu.com">uiiiiiiiiityty</a>laceat eveniet nemo esse! Sunt et quam est repellat harum explicabo fugiat, tempore nobis aut repudiandae consequatur veritatis expedita impedit quaerat accusantium?
            Inventore natus, non delectus<span class="footnote">
                Lorem ipsum dolor sit amet consectetur adipisicing elit.
            </span> a distinctio at provident odio impedit quo aliquid cum quidem tempore ut quis doloremque error, cumque accusantium quam. Earum blanditiis veritatis commodi adipisci, suscipit ut aliquam!
            Corporis nesciunt labore enim, mollitia sunt sit, cum facilis consectetur repellat, necessitatibus vero deleniti ratione beatae facere omnis. Reprehenderit omnis dignissimos laudantium eligendi obcaecati numquam eveniet recusandae. Nisi, obcaecati optio.
        </p>
        <hr>
        <div id="footer"></div>
    </div>
</body>
</html>
 
CSS文件
 .footnote{
    font-style: italic;
    font-size: 12px;
    display: block;
}
.pulled{
    display: block;
    position: absolute;
    width: 120px;
    top:-20px;
    right: 34px;
    padding: 20px;
    font:italic 1.2em "Times News Roman",Times,serif;
    background: #e5e5e5;
    border: 1px solid #999;
    border-radius: 8px;
    box-shadow: 1px 1px 8px rgba(0,0,0,0.6);
}

 实现效果

 

 

 

 

这些方法几乎能够在任何情况下,完成任何任务

(1)要在HTML中创建新元素,使用$()函数

(2)要在每个匹配的元素中插入新元素,使用:

                 .append();

                 .appendTo();

                 .prepend();

                 .prependTo();

(3)要在每个匹配的元素相邻位置中插入新元素,使用:

                 .after();

                 .insertAfter();

                 .before();

                 .insertBefore();

(4)要在每个匹配的元素外部中插入新元素,使用:

                 .wrap();

                 .wrapAll();

                 .wrapInner();

      

(5)使用新元素或文本替换每个匹配的元素,使用:

                 .html();

                 .text();

                 .replaceAll();

                 .replaceWith();

(6)移除每个匹配元素中的元素,使用:

                 .empty()

 (7)要从文档中一处每个匹配的元素及后代元素,但不实际删除它们使用:

                 .remove()

                 .detach();

 

 
 
 
 
 

    

 

 

 

 

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/793537.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++顺序结构(1)

1、C++程序的样子2、流 输出流 COUT<<3、一个实例及解析 // 001 程序的基本结构 //单行注释 /*多行注释 被注释过的内容不会被运行,可以用来做笔记。 基本结构: 1.头文件 程序包含某个头文件后,程序中的代码就可以使用这个头文件里的功能。 2.命名空间 3.主函数 类…

manim边学边做--角度标记

manim中绘制一个角度其实就是绘制两条直线,本篇介绍的不是绘制角度,而是绘制角度标记。 对于锐角和钝角,角度标记是一个弧,弧的度数与角的度数一样; 对于直角,角度标记是一个垂直的拐角。 manim中关于角度标记的模型主要有3个:Angle:根据两条直线绘制角度标记 RightAng…

关于Tailscale Subnet routers要说的

国内的水文很多,Tailscale的部署就不说了。简单的都有讲到,但凡深度一点儿的只能找找外边儿的文章了。 昨天刚给群晖装完Tailscale,打算着利用Subnet routers功能来访问另外的2个子网。 国内的水文在介绍这一段使用的时候是这样的:该文章提到:如果有多个网段添加,就多运行…

CASIA-OLHWDB1.0-1.2数据集解析

OLHWDB1.0-1.2提供联机手写单字数据。 OLHWDB1.0收录汉字3866个,字母数字及符号171个。其中,GB2312-80一级集(共3755个字符)收录汉字3740个。 OLHWDB1.1收录GB2312-80一级集汉字3755个,字母数字及符号171个。 OLHWDB1.2收录汉字3319个,字母数字及符号171个。OLHWDB1.2的汉…

枚举测试

/*** 枚举类*/ public enum SocialTypeEnum {FACEBOOK(1),//脸书GITEE(2),//GITEEWECHAT_ENTERPRISE(3);//企业微信 <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">final</span> <span style=&…

ROS话题通信

# 发布方 # 以发布订阅的方式实现不同节点之间数据交互的通讯模式,用于不断更新的、少逻辑处理的数据传输场景 impoosyt rospy from std_msgs.msg import String# 初始化ROS节点(命门) rospy.init_node("talker_1") # 实例化发布者对象 pub_1 = rospy.Publisher(&…

(14)DDS基本原理与FPGA实现

基本概念 DDS(Direct Digital Synthesizer),即数字合成器,是一种把一系列数字信号通过D/A转换器转化成模拟信号的数字合成技术 DDS的实现有两种方式:查表法和计算法,下面将主要介绍DDS查表法的FPGA实现 查表法:预先在ROM中存放不同相位对应的幅度序列,通过相位累加器的…

入门指南 | Datavines 安装部署篇

摘要:本文主要介绍基于源码部署 Datavines 和执行检查作业,内容主要分为以下几个部分:平台介绍 快速部署 运行数据质量检查作业Datavines 的目标是成为更好的数据可观测性领域的开源项目,为更多的用户去解决元数据管理和数据质量管理中遇到的问题。在此我们真诚欢迎更多的贡…

VUE0003:Naive UI库:滑动条,单选,多选组件

1,滑动条,单选,多选组件 <template><n-scrollbar class="show-scrollbar"><n-space class="map-setting" vertical><n-space style="flex-flow: row; align-items: center;"><n-text class="color-white&quo…

图特征工程实践指南:从节点中心性到全局拓扑的多尺度特征提取

图结构在多个领域中扮演着重要角色,它能有效地模拟实体间的连接关系,通过从图中提取有意义的特征,可以获得宝贵的信息提升机器学习算法的性能。 本文将介绍如何利用NetworkX在不同层面(节点、边和整体图)提取重要的图特征。 本文将以NetworkX库中提供的Zachary网络作为示例…

软件工程个人第一次作业

软件工程作业📖📖 🚗预览课程 软件工程作业要求 要求作业目标 熟悉github与博客园,并且掌握最基础的操作。编辑博客页面,感受AGIC的生成效果学号 1022013111. 个人logo生成任务🐱 使用搭载DALL-E3的Coplit尝试生成logo的演示过程 ![]设计思路: graph TD A[薛定谔的猫…

git 推送本地文件

引言 参考文章:Git操作全流程介绍Git 的工作流程如下所示:1. 创建仓库 1.1 新建 gitee 仓库 在 gitee 中创建一个仓库 HelloWorld,如下所示:1.2 初始化本地仓库 假设本机有一个 MyCode 文件夹,进入该文件夹目录下,在该处打开 git bash。,输入命令将该文件夹初始化为 git…