createElement的用法

news2024/11/29 16:26:10

目录

一:介绍

二:语法与例子 

1、语法

2、一些例子 

例1:

例2:

例3:

3、第二种写法


一:介绍

        document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用。其中,appendChild() 方法在节点的子节点列表末添加新的子节点。insertBefore() 方法在节点的子节点列表任意位置插入新的节点。

二:语法与例子 

1、语法

        Vue.js提供了一个函数createElment用于创建视图元素。createElement是Vue.js中最基本的构建块之一,它用于创建虚拟DOM节点对象。 

        createElment接收三个参数,第一个参数tagName是一个字符串,表示节点的标签名。第二个参数data是一个对象,用于设置该节点的属性、样式和事件等。第三个参数children是一个数组,用于指定该节点的子节点。

        比如在下面的代码中,我们通过createElment函数创建了一个元素,该元素有一个id属性和一个style样式,当它被点击时会弹出一个提示框。此外,该元素还有两个子节点,分别是一个内容为“Hello Vue.js!”的P元素和一个内容为“Click me!”的button元素。

Vue.createElment('div', {
        attrs: {
            id: 'app'
        },
        style: {
            color: 'red'
        },
        on: {
            click: function () {
            alert('Hello World!')
            }
        }
    }, [
    Vue.createElment('p', 'Hello Vue.js!'),
    Vue.createElment('button', 'Click me!')
])

2、一些例子 

       下面,这个是所有例子的共有html。

<div id="board"></div>

例1:

<script type="text/javascript">
    var board = document.getElementById("board");
    var e = document.createElement("input");
    e.type = "button";
    e.value = "这是测试加载的小例子";
    var object = board.appendChild(e);
</script>

效果:在标签board中加载一个按钮,属性值为“这是测试加载的小例子”。

       

例2:

<script type="text/javascript">
    var board = document.getElementById("board");
    var e2 = document.createElement("select");
    e2.options[0] = new Option("加载项1", "");
    e2.options[1] = new Option("加载项2", "");
    e2.size = "2";
    var object = board.appendChild(e2);
</script>

效果:在标签board中加载一个下拉列表框,属性值为“加载项1”和“加载项2”。

       

例3:

<script type="text/javascript">
    var board = document.getElementById("board");           
    var e3 = document.createElement("input");
    e4.setAttribute("type", "text");
    e4.setAttribute("name", "q");
    e4.setAttribute("value", "使用setAttribute");
    e4.setAttribute("onclick", "javascript:alert('This is a test!');");           
    var object = board.appendChild(e3);
</script>

效果:在标签board中加载一个文本框,属性值为“使用setAttribute”。 当点击这个文本框时,会弹出对话框“This is a test!”。

        根据上面例子,可以看出,可以通过加载对象的属性来设置,参数是相同的。使用e.type="text" 和 e.setAttribute("type","text")效果是一致的。

3、第二种写法

        在实际开发中,也会使用到另外两种方法来实现功能。下面,我们用实例来讲述一下appendChild() 方法和insertBefore() 方法的不同

         比如我们要在下面这个div中插入一个子节点P时:

<div id="test"><p id="x1">Node</p><p>Node</p></div> 

我们可以这样写:

<script type="text/javascript">
    var oTest = document.getElementById("test");
    var newNode = document.createElement("p");
    newNode.innerHTML = "This is a test";
    //测试从这里开始
    //appendChild方法:
    oTest.appendChild(newNode);
    //insertBefore方法:
    oTest.insertBefore(newNode,null);
</script>

      通过以上的代码,可以测试到一个新的节点被创建到了节点div下,且该节点是div最后一个节点。很明显,通过这个例子,可以知道appendChildhild和insertBefore都可以进行插入节点的操作。

   在上面的例子中有这样一句代码:oTest.insertBefore(newNode,null) ,这里insertBefore有2个参数可以设置,第一个是和appendChild相同的,第二却是它特有的。它不仅可以为null,还可以为:

<script type="text/javascript">
    var oTest = document.getElementById("test");
    var refChild = document.getElementById("x1");
    var newNode = document.createElement("p");
    newNode.innerHTML = "This is a test";
    oTest.insertBefore(newNode,refChild);
</script>

效果:这个例子将在x1节点前面插入一个新的节点

又或:

<script type="text/javascript">
    var oTest = document.getElementById("test");
    var refChild = document.getElementById("x1");
    var newNode = document.createElement("p");
    newNode.innerHTML = "This is a test";
    oTest.insertBefore(newNode,refChild.nextSibling);
</script>

效果:这个例子将在x1节点的下一个节点前面插入一个新的节点

还可为:

<script type="text/javascript">
    var oTest = document.getElementById("test");
    var newNode = document.createElement("p");
    newNode.innerHTML = "This is a test";
    oTest.insertBefore(newNode,oTest.childNodes[0]);
</script>

  这个例子将在第一子节点前面插入一个新的节点,也可以通过改变childNodes[0,1,...]来在其它位置插入新的节点

由于可见insertBefore()方法的特性是在已有的子节点前面插入新的节点,但例一中使用insertBefore()方法也可以在子节点列表末插入新节点的。两种情况结合起来,发现insertBefore()方法插入节点,是可以在子节点列表的任意位置。

  从这几个例子中得出:

  appendChild() 方法在节点的子节点列表末添加新的子节点。

  insertBefore() 方法在节点的子节点列表任意位置插入新的节点。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js获取当前日期与7天后的日期

调用 console.log(this.getSectionData(7))结果 函数 getSectionData(section) {const now new Date()const nowYear now.getFullYear()const nowMonth now.getMonth() 1 < 10 ? (0 (now.getMonth() 1)) : (now.getMonth() 1)const nowDay now.getDate() < 1…

AJAX 入门笔记

课程地址 AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09; AJAX 不是新的编程语言&#xff0c;而是一种使用现有标准的新方法 AJAX 最大的优点是在不重新加载整个页面的情况下&#xff0c;可以与服务器交换数据并更新部分网页内容 XML…

GIS入门,xyz地图瓦片是什么,xyz数据格式详解,如何发布离线XYZ瓦片到nginx或者tomcat中

XYZ介绍 XYZ瓦片是一种在线地图数据格式,由goole公司开发。 与其他瓦片地图类似,XYZ瓦片将地图数据分解为一系列小的图像块,以提高地图显示效率和性能。 XYZ瓦片提供了一种开放的地图平台,使开发者可以轻松地将地图集成到自己的应用程序中。同时,它还提供了高分辨率图像和…

RT-Thread 11. Scons 选择不同的编译器编译BSP

1.使用gcc编译工程&#xff0c;生成elf、bin文件 如果是 ARM 平台的芯片&#xff0c;则可以使用 Env 工具&#xff0c;输入 scons 命令直接编译 BSP&#xff0c;这时候默认使用的是 ARM GCC 编译器&#xff0c;因为 Env 工具带有 ARM GCC 编译器。 2.使用template.uvproj 生成…

conda不同环境pip list包都一样问题;conda国内镜像加速

1、conda不同环境pip list包都一样问题 注意是因为conda创建不同环境里用pip安装容易导致&#xff0c;因为pip install安装 python包管理大多都默认到一个地方&#xff0c;正常用conda install就会有隔离 参考&#xff1a;https://blog.csdn.net/tywwwww/article/details/127…

【组件自定义事件+全局事件总线+消息订阅与发布+TodoList案例——编辑+过度与动画】

组件自定义事件全局事件总线消息订阅与发布TodoList案例——编辑过度与动画 1 组件自定义事件1.1 绑定1.2 解绑1.3 总结1.4 TodoList案例——自定义事件 2 全局事件总线2.1 理解2.2 步骤2.3 TodoList案例——事件总线 3 消息订阅与发布3.1 理解3.2 TodoList案例——消息的订阅与…

OpenText Voltage 数据隐私和保护解决方案

隐私从统一数据发现开始&#xff0c;通过 Voltage Fusion 了解您的数据&#xff0c;保护您最重要的资产&#xff0c;通过默认隐私安全使用数据。 优点 1、内置数据隐私 Voltage Fusion 平台使用人工智能快速识别风险。 2、支持有效行动的见解 为基于策略的行动分析和分类数据。…

分享66个Python管理系统源代码总有一个是你想要的

分享66个Python管理系统源代码总有一个是你想要的 源码下载链接&#xff1a;https://pan.baidu.com/s/1FGmE9Q_NE1-cjjoxU540BQ?pwd8888 提取码&#xff1a;8888 项目名称 automobile-sales-management-system汽车销售管理系统 Python Vue BNUZ教务系统认证爬虫Python语言…

云服务器玲琅满目的时代,为什么我独爱Amazon EC2 云服务器?

前言 作为一名程序员&#xff0c;我们不管什么时候都离不开一个云服务器&#xff0c;我们可以将网站部署在云服务器上&#xff0c;实现网站的访问和运行&#xff0c;如果你是学生&#xff0c;那么你可以清晰的向面试官去展示你的项目来提升你面试的成功率&#xff0c;也可以去…

电脑设置在哪里?5招快速进入设置!

“作为一名电脑新手&#xff0c;在操作电脑时真的感觉很多东西不会。我想调整一下我的电脑屏幕&#xff0c;需要进入设置中对某些参数进行调整&#xff0c;但是我不知道电脑设置在哪里。请大神帮帮我吧&#xff01;” 电脑设置可以帮助用户解决各种电脑问题&#xff0c;我们可以…

【Java】IntelliJ IDEA使用JDBC连接MySQL数据库并写入数据

目录 0 准备工作1 创建Java项目2 添加JDBC 驱动程序3 创建数据库连接配置文件4 创建一个 Java 类来连接和操作数据库5 运行应用程序 在 IntelliJ IDEA 中连接 MySQL 数据库并将数据存储在数据表中&#xff0c;使用 Java 和 JDBC&#xff08;Java Database Connectivity&#xf…

AI:71-基于深度学习的植物叶片识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

使用基于swagger的knife4j自动生成接口文档

添加swagger依赖springfox&#xff0c;添加knife4j依赖 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId> </dependency> <dependency><groupId>com.github.xiaoymin</group…

在Windows 10上安装单机版的hadoop-3.3.5

1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以不需要了解分布式底层细节的情况下&#xff0c;开发分布式程序。充分利用集群进行高速运算和存储。 2、下载Hadoop&#xff0c;我们在清华大学的镜像站下载 Index of /apache/hadoop/core/hadoop-3.3.6 (t…

4、FFmpeg命令行操作1

一、环境搭建 1. 到ffmpeg官方下载已经编译好的Windows shared库&#xff1b; 2. 将执行文件ffmpeg.exe ffplay.exe ffprobe.exe拷贝到C:\Windows目录; 3. 将相应的动态库拷贝到C:\Windows\SysWOW64目录&#xff1b; 注&#xff1a;WOW64 (Windows-on-Windows 64-bit) 4.…

win10添加回环网卡步骤

打开命令行输入hdwwiz 添加新硬件向导 结果

C语言--分段函数--switch语句

如何用switch语句写分段函数呢&#xff1f;⭐️ 首先介绍一下switch语句的语法规则⭐️ switch(整形表达式) {case 常量表达式1&#xff1b; //标签必须唯一语句块1;break;case 常量表达式2&#xff1b; //if(a0),而case中时系统自动加语句块2&#xff1b;break&#xff1b;c…

关于国内SRRC-无线电设备认证流程与认证标准介绍

随着无线通信技术的迅猛发展&#xff0c;无线设备在我们的日常生活中扮演着越来越重要的角色。在中国&#xff0c;为了确保无线设备的合规性和可靠性&#xff0c;针对对应进行合规认证是必不可少的。本文将介绍国内无线电产品SRRC认证&#xff0c;探讨其背景、认证流程和标准要…

Java 最常见的面试题:常用的 jvm 调优的参数都有哪些?

Java 最常见的面试题&#xff1a;常用的 jvm 调优的参数都有哪些? 常用的Java虚拟机&#xff08;JVM&#xff09;调优参数有很多&#xff0c;以下是一些重要的参数&#xff1a; -Xms 和 -Xmx&#xff1a;这两个参数分别设置了JVM启动内存的最小值和最大值&#xff0c;单位通…