我不知道 var 的范围

2023-12-02

我想用 vanilla js 制作一张桌子。但根据声明变量的位置,我得到了不同的结果。

var body = document.body;
var table = document.createElement('table');
var tr = document.createElement('tr');
var td = document.createElement('td');
body.appendChild(table);
for (var i = 0; i < 3; i +=1) {
    
    table.appendChild(tr);
    for (var j = 0; j < 3; j+=1) {
        
        tr.appendChild(td);
        td.textContent = 'td';
    }
}

我想做3*3的桌子。但它制作了 1*1 表。

var body = document.body;
var table = document.createElement('table');
body.appendChild(table);
for (var i = 0; i < 3; i +=1) {
    var tr = document.createElement('tr');
    table.appendChild(tr);
    for (var j = 0; j < 3; j+=1) {
        var td = document.createElement('td');
        td.textContent = 'td';
        tr.appendChild(td);
    }
}

并且成功了。有什么区别?


请参阅文档appendChild:

Node.appendChild() 方法将一个节点添加到指定父节点的子节点列表的末尾。如果给定的子节点是对文档中现有节点的引用,appendChild() 会将其从当前位置移动到新位置。

在您的第一个代码中,您创建one tr and one td,然后在循环中,在每次迭代中,删除tr and td在再次附加它们之前从以前的位置添加它们。

相反,在你的第二个代码中,你调用createElement在每次迭代中,因此新元素td and tr变量保持文档中不存在在附加之前,因此不会删除任何内容,并最终生成 3x3 网格。

它实际上与范围没有任何关系 - 它与您创建新元素的事实有关createElement而不是重复使用您在先前迭代中附加的相同元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我不知道 var 的范围 的相关文章

  • Javascript 函数与 php 一样吗?

    我在网站上使用 WebIM 提供聊天支持 我希望能够在客户端启动聊天会话时设置一个计时器 如果操作员 技术人员在 x 秒内没有响应 我希望页面重定向到客户端可以留言的另一个页面 有点像 请稍等 我们尝试联系您 这样 如果所有技术人员都太忙或
  • WebGL iOS 渲染为浮点纹理

    我正在尝试在 iOS Safari 上的 WebGL 中渲染浮点纹理 而不是在本机应用程序中 我已经设法让 iOS 读取手动 例如从 JavaScript 创建的浮点纹理 但是当我创建浮点类型的帧缓冲区并使用 GPU 渲染到其中时 它不起作
  • 在 Javascript 中,有什么方法可以知道从哪个主机脚本加载?

    在javascript中 作为从某个主机加载的脚本 有什么方法可以知道我是从哪个服务器 主机加载的 我需要向该主机发出额外的 ajax 请求 并且更愿意动态地找出主机 因此 如果您在页面上包含 javascript 文件 当该 javasc
  • 当放入对象方法内时,引用拉入封装方法的方法会移出范围

    当我将引用拉入包的方法放入另一个方法中时 它会离开范围并失败 执行此操作的正确方法是什么 我尝试玩弄 自我 但我是新人 但没有成功 所需的解决方案 不起作用 返回错误 nil NilClass 的未定义方法 accounts NoMetho
  • 如何检测不渲染 .png 透明的浏览器

    我有这段代码可以根据一周中的某一天渲染图像 但在 IE6 及更低版本以及可能其他一些浏览器中 它不会呈现 png 不透明度 所以我想稍微改变一下 这样它就会检测到不渲染 alpha 透明度的浏览器 并告诉他们加载这个图像 img horar
  • 如何使用 AngularJS、Devise 和 UI Router 全局实现身份验证?

    我对 Angular 很陌生 所以这可能是一个新手问题 我正在尝试实现一个简单的任务管理器 只是一个练习 以 Rails 作为后端 以 Angular 作为前端 到目前为止 我遵循了教程 一切正常 现在我想在全球范围内实施身份验证 这意味着
  • 单击量角器中元素的给定坐标

    我想点击我的特定位置canvas元素 所以我编写了以下量角器代码 var canvas element by id canvas var clickCanvas function toRight toBottom browser actio
  • javascript中文本区域限制每行的字符数

    我试图用 javascript 限制文本区域中每行的字符数 我在这里看到了一些例子 但并不完全符合我的要求 我写了一些东西 只有当你每次添加超过限制时才可以 换句话说 我每行有 10 个字符的限制 如果你总是输入至少 10 个字符就可以正常
  • ExitFullScreen 不起作用 + 无论如何要按键盘单击按钮?

    我的浏览器 Google Chrome 版本 33 0 1750 154 m Script function exitFullscreen var element document documentElement if element mo
  • 如何处理 d3 中 Beeswarm 图中的碰撞?

    我一直在玩这个例子here https gf neocities org co2bs co2bee html一会儿 我想做的是突出显示图中的单个节点 圆圈 通过使用边框使其变大 稍后我也想在其中添加文本或字母 目前 我已经圈了Bhutan图
  • Angular - Safari 无法正确显示 DOM

    我是 Angular 的新手 使用 Angular 4 我尝试通过在关联的组件类文件中设置属性来更新特定元素 但是 除非我尝试强制重新绘制网页 通过调整窗口大小等 否则页面不会更新 我打开检查器 看到 DOM 已更改 但显示与元素检查器中的
  • 如何按单个整数字段对 JSON 进行排序? [复制]

    这个问题在这里已经有答案了 我有以下 JSON title title order 0 order 9 order 2 JSON 包含很多字段 我如何根据字段对它们进行排序order field 我一直在寻找 Nodejs 中内置的东西 但
  • 如何使用javascript隐藏div

    我想使用 Javascript 隐藏一个 div 下面是我的div div class ui dialog titlebar ui widget header ui corner all ui helper clearfix span cl
  • 从 url 角度加载模板并在 div 内编译

    由于我是 Angular JS 的新手 我想知道如何加载外部模板并将其与一些数据一起编译到目标中div 例如我有这个模板
  • javascript onclick 进入新窗口

    这是我的代码
  • 我将 X Y Z 坐标转换为屏幕 X Y 坐标有什么问题吗?

    我正在制作 3D 空间中弹跳的球体的 HTML5 Canvas 演示 这非常简单 每个球都有 X Y 和 Z 坐标 然后 这些坐标将转换为我在此处阅读的屏幕 X 和 Y 坐标 http answers google com answers
  • React TypeError:x 不是函数

    我在子组件中从父组件调用函数 booksRefresh 但出现错误 类型错误 booksRefresh 不是函数 我不知道为什么 因为 booksRefresh 是一个函数 有人可以帮我解释为什么会出现这个错误吗 这是我的代码 import
  • 如何在 WebView 中添加 JavaScript 函数并稍后在提交 reCAPTCHA 时从 HTML 调用它

    我在 WebView 中添加一个 JavaScript 函数 如下所示 Kotlin val webView findViewById R id webview as WebView webView getSettings setJavaS
  • 在 Javascript 中创建数组

    我对 javascript 不太熟悉 并且在用 javascript 制作 2d 或者也许我可能需要 3d 数组时遇到了一些麻烦 我目前需要收集 2 条信息 一个 ID 和一个值 因此我创建了以下内容 var myArray var id
  • 右列固定的 Div 表

    我最近接手了一个非营利网站作为一个项目 我正在使用一个现有的网站 所以我必须使用很多已经编程的东西 所以我所要做的就是创建设计 I made a diagram of basically what I can t figure out ho

随机推荐

  • java中如何获取屏幕分辨率? [复制]

    这个问题在这里已经有答案了 可能的重复 屏幕分辨率java Hi Java中如何获取屏幕分辨率 您可以使用 AWT 工具包 Dimension screenSize Toolkit getDefaultToolkit getScreenSi
  • 尝试在 ScriptDb 中存储数组时出错

    我有一个由脚本创建的对象数组 我尝试将该数组复制到一个新数组中 然后使用以下函数将其存储在 scriptDb 中 function copyAndStore currentArray var db ScriptDb getMyDb var
  • 如何使用 iOS SDK 覆盖其他应用程序

    Android 拥有一项权限 允许应用程序通过浮动内容 覆盖其他应用程序 使用 SYSTEM ALERT WINDOW允许 iOS 有类似的东西吗 不 这是不可能的 用户只能与当前位于前台的任何应用程序进行交互
  • ElasticSearch NEST 5.6.1 单元测试的查询

    我向弹性搜索编写了一堆查询 我想为它们编写一个单元测试 使用这篇文章最小起订量弹性连接我能够进行一般性的嘲笑 但是当我尝试查看从查询生成的 Json 时 我没有设法以任何方式获取它 我尝试关注这篇文章弹性查询最小起订量 但它仅与旧版本的 N
  • AlarmManager 会在断电时删除所有计划吗?

    我已经在特定时间设置了闹钟 如果手机关机了闹钟会丢失吗 我已关闭手机 然后再次启动 但闹钟未在指定时间触发 PendingIntent pendingIntent PendingIntent getBroadcast Global a ge
  • 我应该使用 data.frame 还是矩阵?

    什么时候应该使用data frame 什么时候最好使用matrix 两者都以矩形格式保存数据 因此有时会不清楚 对于何时使用哪种数据类型有什么通用的经验法则吗 部分答案已包含在您的问题中 如果列 变量 预计为不同类型 数字 字符 逻辑等 则
  • Pandas:添加包含其他列计算的列

    我有一个带有测量值的 csv YY MO DD HH MI SS SSS x y 2015 12 07 20 51 06 608 2 4 2015 12 07 20 51 07 609 3 4 我想添加另一列 其中 x 2 y 2 之和的平
  • 检查 C# 中的 WMI 命名空间是否存在

    我想检查某台机器上是否安装了某个功能 我有一个 powershell 代码来检查这一点 现在我想从 net 代码中检查这一点 我可以看到在 cmdlet 中 代码检查是否有invalid namespace error 在网上搜索时 我发现
  • Apache Kafka 和 JMS 之间的连接

    我想知道 Apache Kafka 可以通信并将消息发送到 JMS 吗 我可以在它们之间建立连接吗 例如 我在我的系统中使用 JMS 它应该将消息发送到使用 Kafka 的其他系统 回答有点晚了 但如果我正确理解了要求 如果要求是同步消息传
  • MQ8 + JDk8 的授权错误

    当使用 JMS 示例代码时 放置在应用程序中 使用 MQ8 JDk8 时出现低于授权错误 MQException received while attempting reconnect Reason Code 2035 Exception
  • 有没有一种方法可以使用一个选择来计算 MySQL 中的时间差

    我有一个包含以下内容的表 name type id INT date1 DATETIME date2 DATETIME 我需要计算 date2 和 date1 之间的差异 这可以使用TIMEDIFFMySQL 中的函数 但是 有没有一种方法
  • 表单中的第一个参数不能包含 nil 或为空 Hartl's Rails 4 Tutorial

    我正在学习 Michael Hartl 的 Rails 教程 并且在第 7 3 3 节中遇到了问题 我收到此错误消息 ArgumentError in Users new Showing Users Anuraag rails projec
  • auto&& 变量不是右值引用

    为什么 auto 不是右值引用 Widget var1 Widget rvalue reference auto var2 var1 var2 not rvalue reference 以下是右值参考示例 void f Widget par
  • 如何在.NET Core类库中使用System.Windows.Forms

    我创建了 NET Core 类库并尝试针对 net40 框架构建它 我想使用 System Windows Forms 程序集中的 Clipboard 类 我怎样才能做到这一点 我的project json 文件 version 1 0 0
  • swift 无法将 .m3u8 文件保存到图库

    我使用下面的方法下载我的视频并将其保存到图库 使用 mp4 可以正常工作 但是当更改为 m3u8 时 它总是失败 func downloadVideoLinkAndCreateAsset videoLink String fileName
  • com.lowagie.itext 版本 4.2.2 MVNrepository 中缺少 jar 文件

    我们有一个使用 Jasper Reports 1 3 4 的旧项目 最后生成的 1 x 版本 http mvnrepository com artifact jasperreports jasperreports 1 3 4 这取决于 co
  • IOS:将字符串转换为十六进制数组

    我有代表数据的字符串 我需要将这些数据转换为十六进制数组 通过使用十六进制数组数据 我可以将其传递给 CRC 以写入外设 我的字符串数据是这样的 NSString stringsdata helloworld1234567812345q 我
  • 运行查询时确保冷缓存

    是否有提示可以确保当我运行特定查询时优化器不会使用缓存的查询计划 我已经找到了MSDN 页面强制使用特定计划 但我要求相反 我尝试添加以下提示 OPTION USE NO PLAN 或者我是否需要实际清除部分缓存 对于个别查询 您可以使用O
  • 如何使用 OpenShift 中的 JAVA 连接到 MongoDB 服务器?

    我创建了一个MongoDB实例在OpenShift 我可以通过连接到它RockMongo 这是由OpenShift 我正在尝试使用连接到我的实例JAVA 但我刚刚收到Connection refuesed错误 此外 我无法使用它连接它Rob
  • 我不知道 var 的范围

    我想用 vanilla js 制作一张桌子 但根据声明变量的位置 我得到了不同的结果 var body document body var table document createElement table var tr document