是否可以保存对 JavaScript 中尚不存在的元素的引用?

2024-06-22

我以前曾尝试问过这个问题,但很难解释。所以在这里我将尝试重新表述它。

这是我的 HTML 正文:

<bod>
<div id="foo"></div>
<div id="bar"></div>
</body>

在 JavaScript 中,我调用一个函数,并将节点引用作为参数。其中一些存在,一些不存在。

myElements([document.getElmentById('foo'), document.getElmentById('bar'), document.getElmentById('peaches'), document.getElmentById('oranges')]);
//foo and bar exist, peaches and oranges don't

function myElements(list){
window.list = list; //list returns [element], [element], null, null
}

我遇到的问题是当我调用变量 window.list 时after peaches and oranges已创建,但它们未被引用,因为它们在 window.list 中为 null。 有什么方法可以保存对尚未创建的元素的引用。我can't使用类、id 等,因为我正在动态创建这些元素。

Thanks!


有什么方法可以保存对尚未创建的元素的引用。

不,但请参阅下文。

我无法使用 class、id 等,因为我正在动态创建这些元素。

You are using ids.

最好的办法就是让代码创建元素,然后使用已创建的元素调用函数。如果由于某种原因你无法做到这一点,其他任何方法基本上都是一种解决方法。

其中一种解决方法是轮询:您设置一个计时器来检查。

myElements(['foo', 'bar', 'peaches', 'oranges']);

function myElements(list){

    window.list = list;
    findElements();

    function findElements() {
        var n, element, entry, repeat = false;
        for (n = 0; n < window.list.length; ++n) {
            entry = window.list[n];
            if (typeof entry === "string") {
                element = document.getElementById(entry);
                if (element) {
                    window.list[n] = element;
                }
                else {
                    repeat = true;
                }
            }
        }
        if (repeat) {
            setTimeout(findElements, 50); // Do it again, 50ms later
        }
    }
}

它将继续尝试寻找元素,直到找到所有元素。

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

是否可以保存对 JavaScript 中尚不存在的元素的引用? 的相关文章

  • 将表格单元格添加到现有表格行,jQuery

    我正在尝试使用 jQuery 将值添加到表中 不幸的是 我不知道如何让 jQuery 将表单元格添加到现有行 例如 td a href key a td click function e e preventDefault testset k
  • 如何动态获取浏览器的高度和宽度?

    我想做的是创建一个不依赖媒体查询的聊天框 这从数学上设置了聊天框内容的大小 我正在尝试 window height window width 但这并没有覆盖整个浏览器窗口 我想在 javascript jquery 中完成这一切 而不需要
  • 如何使用 jQuery 定期更新页面上的日期/时间值?

    在此示例中 我有一个输入文本字段 其中包含使用 jQuery 设置的日期时间值 http jsfiddle net D4Hu9 http jsfiddle net D4Hu9 HTML
  • Chrome 扩展弹出窗口的非阻塞警报

    我正在制作一个 chrome 扩展 为此我需要在弹出窗口中添加一些非阻塞警报 定期警报会暂停 javascript 代码执行 而客户端并不希望这样 我尝试使用 jQuery 的 UI 对话框 但是当我单击 确定 按钮关闭它时 弹出窗口失去焦
  • 字符串和数组泛型方法将来将被弃用

    在下面的链接 MDN 站点 中 它显示 字符串泛型是非标准的 已弃用 将来可能会被删除 请注意 如果不使用下面提供的填充程序 则不能跨浏览器依赖它们 他们所指的方法是否是他们在此声明下方提供的垫片中列出的方法 这是我见过的唯一对 字符串泛型
  • 在容器大小调整时调整传单地图的大小

    我有一个 div 包含传单地图 在某些事件发生时 高度 div 将会被改变 我希望地图能够调整到其周围的新尺寸 div 以便旧中心位于调整大小的较小或较大地图的中心 我尝试使用invalidateSize 功能 但似乎根本不起作用 之后如何
  • 为什么我收到 TypeError: array[i] is undefined? [复制]

    这个问题在这里已经有答案了 因此 在我的程序中 我有一个包含值的字典 散列的数组 当我循环遍历该数组时 我得到了我需要的值 但 for 循环之后的任何代码都不会执行 因为控制台输出 TypeError array i is undefine
  • 比较 2 个数组并显示数组 1 中不匹配的元素 [重复]

    这个问题在这里已经有答案了 我有 2 个数组 如下所示 我想比较两个数组 并且只提供 check 中不存在于 data 数组中的元素 var check 044 451 data 343 333 044 123 444 555 使用的函数如
  • 如何使用 css3 动画将宽度和高度设置为 100%?

    我有以下代码 HTML div div css div background tomato width 100px height 100px webkit animation animateThis 0 3s ease in webkit
  • 通过 JavaScript 传输事件来调用 :hover 伪类

    这是场景 您有两张图像 它们彼此堆叠在一起 最高阶的 z 索引图像负责处理点击事件 想想 Google 的 Map API 并且是透明的 而下面的图像负责视觉表示 这是一个伪 HTML CSS 表示 div visual container
  • 正则表达式替换“NO-BREAK SPACE”

    我正在寻找一个正则表达式来替换字符串中的 NO BREAK SPACE 有一些与 NO BREAK SPACE 相关的问题 但似乎没有一个问题能让我找到正确的答案 到目前为止 我尝试使用 字符串 AB 的第二个字符是不间断空格 但没有成功
  • 如何触发 Bootstrap Carousel 的轮播指示器

    我的代码有什么问题吗 我想触发当前的引导轮播幻灯片编号 我想在特定幻灯片时更改文本或执行一些 jQuery 命令 请看我的代码 document ready function myCarousel on slide bs carousel
  • 将画布图像保存到服务器

    我正在尝试将画布图像保存到服务器 我可以保存文件 但它始终是 0 字节 我的代码有什么问题吗 php
  • 如何同时滚动两个窗口?

    我想要同时滚动两个窗口 https superuser com a 326826 301042 但是热键输入法需要我重复多次 我的想法是使用功能热键 https autohotkey com docs Hotkeys htm Functio
  • 为什么 (false || null) 返回 null,而 (null || false) 返回 false?

    为什么false null返回与以下不同的结果null false 我可以安全地依靠吗return myVar false如果 myVar 是其中之一 则返回 falsenull or false but true否则 所有组合 false
  • 在 Bootstrap 中的悬停中打开折叠选项卡

    我在 Bootstrap 中有折叠面板 单击选项卡标题即可打开该面板 我试图弄清楚如何使用鼠标悬停在选项卡的总宽度上来打开 但我没有得到它 下面是默认关闭的单个选项卡的代码 div class panel panel default sty
  • Visual Studio 2013 中的 JavaScript HTML5 CSS3 项目模板

    我刚刚下载了 Visual Studio 2013 Express for Web 我想知道如何部署仅限 JavaScript HTML5 和 CSS3 的项目 我找不到合适的模板或方法来做到这一点 我已经在网上搜索过JavaScript模
  • 如何在javascript中获取表中复选框的值

    我需要获取表行中提供跨度的复选框的值 下面的代码是我的项目的一部分 HTML 代码用于动态我的表格 而 javascript 代码用于获取不适用于复选框的元素的值 它适用于其他输入元素 我的桌子 var html tr class rows
  • Select2 的行为与未为 Select2 定义的 Uncaught 查询函数非常不同

    我按以下方式加载 select2 的值 声明类型 var AdjustmentType Backbone Model extend url Hexgen getContextPath referencedata adjustmenttype
  • 比较断言中的函数输出类型

    我正在努力使用 chai mocha 和 JS DOM 编写测试断言 我有一个简单的函数 例如 function HtmlElement el this element el instanceof HTMLElement el docume

随机推荐

  • 如何查找数组中存储的字符串中的数字之和

    我已经弄清楚如何从单个字符串计算数字的值 作为示例 var sum 13 2 10 7 3 split reduce function x y return parseInt x parseInt y Value of 35 我有兴趣找到数
  • 不区分大小写的列表

    我需要一个不区分大小写的列表或集合类型 字符串 创建一个最简单的方法是什么 您可以指定要在字典的键上获得的比较类型 但我找不到列表的类似内容 假设您使用的是 NET 3 5 您可以使用 var strings new HashSet
  • 如何向 CRichEditCtrl 添加 Unicode 支持?

    我的应用程序曾经使用 MFC CEdit 控件 并且我们对宽字符 Unicode 字符串没有任何问题 切换到CRichEditCtrl后 似乎不再支持Unicode 汉字变成了 等等 我读过 CRichEditCtrl 在底层使用 Rich
  • 如何在 PHP 客户端和 C 守护程序服务器之间进行 IPC?

    感谢您查看这个问题 的背景我有几台机器可以在很短的时间内连续生成多个 最多 300 个 PHP 控制台脚本 这些脚本运行速度很快 不到一秒 然后退出 所有这些脚本都需要对大型文件进行只读访问trie http en wikipedia or
  • Django manage.py runserver 优雅重载

    我正在开发一个 Django 项目 它集成了网络摄像头和 OpenCV 对于网络摄像头访问 我使用以下代码 如果我使用的话 网络摄像头可以被释放Ctrl C结束正在运行的服务器 但如果服务器在代码更改后重新加载 则网络摄像头无法正确释放 因
  • 如何在 Laravel 5 中设置基本路径

    I moved Laravel 公共文件夹 to the 根文件夹 然后我搬家了Laravel to 它自己的文件夹 所以我可以在共享主机上使用 Laravel 它看起来像这样 2015 08 04 18 13
  • 显示 jQuery 验证摘要和单独的错误消息

    我在 ASP net MVC 中使用 jQuery 验证 除了控件之外 我想显示验证摘要以及单独的错误消息 我一次可以做其中一个 因此 了解如何同时显示两者将非常有帮助 我假设您正在寻找仅 JQuery 的解决方案 我不知道 ASP net
  • 如何在 Java 字符串中用 \u 替换 \\u

    我有一个格式的字符串 aaa u2022bbb u2014ccc 我想显示这两个特殊字符 但为了能够做到这一点 我必须首先将字符串转换为以下格式 aaa u2022bbb u2014ccc 我尝试编写这个 但它给出了编译错误 String
  • 如何跨函数将函数参数粘合到 dplyr 中的 .names?

    我正在尝试命名一个的输出across使用两者的函数 col 和函数参数之一 library tidyverse mean by lt function data by var prefix avg data gt group by by g
  • 为什么包含 const 数据成员的类不存在默认构造函数

    为什么编译器没有为包含常量数据成员的类添加默认构造函数 请参阅下面的代码 因为我已经声明了常量数据成员 a 并且在尝试为类 ClassA 创建对象时 它说没有可用的适当的默认构造函数 请帮忙 include stdafx h include
  • vagrant 与 laravel homestead 共享

    我遇到了让 vagrant share 与 laravel homestead vagrant box 结合使用的问题 我的 homestead yaml 文件如下所示 ip 192 168 10 10 memory 2048 cpus 1
  • 5.2 中的沙箱嵌入式 Lua / 从 lua.file 设置函数环境

    假设我至少有两个 lua 脚本文件 测试1 lua 测试2 lua 两者都定义了一个 init 函数和其他具有相似名称的函数 我如何使用 Lua 5 2 将使用 c c 的每个脚本文件加载到单独的环境中 以便相同的函数名称不会冲突 我找到了
  • C、如何使用pthread_create函数创建线程

    我正在为调度队列创建一个 c 文件 该队列获取任务并将其放入链表队列中 为了做到这一点 我需要使用创建线程 pthread t cThread if pthread create cThread NULL work param perror
  • Javascript 警报消息替代方案

    在我的在线页面上有一条简单的警报消息 我基本上需要更改标题 但我读到我不能这样做 这是代码 在警报消息中 我获取网站的网址 然后获取其下方的消息 除了 JavaScript 警报之外 最快的替代方法是什么 Thanks 我很喜欢这个 htt
  • PHP usort 重新排序数组,所有排序值都相同

    我使用 usort 对每个元素中具有关联数组的数组进行排序 当我在数组中排序的所有值都相同时 它仍然会更改数组中元素的位置 有没有办法防止这种情况 例如这个 array array name gt Ben authn weight gt 8
  • 在真实 iPhone 上测试应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 将 iphone 应用程序从 xcode 部署到 iphone https stackoverflow com questions 5091883 deploy an iphone app from
  • 在 Mac OS X 上构建 Google Breakpad

    我正在尝试建立谷歌 Breakpad http code google com p google breakpad 对于 Mac OS X 作为移植应用程序的一部分 基于主干修订版 782 Breakpad 维基 http code goo
  • 在专用 Worker 中生成共享 Worker

    我正在玩WebWorkers 不知何故 我想到让一个页面的不同实例知道另一个页面何时关闭 因此我写了一个 Shared Worker 并且它工作得很好 但现在我想要一个专用工作人员充当共享工作人员的接口 这样 UI 中昂贵的操作就不会影响与
  • Liquid:我可以从数组中获取随机元素吗?

    我正在尝试从数组中选择一个随机元素 使用 Liquid Jekyll 可以吗 我可以创建一个数组 并访问给定的索引 但是有没有办法 洗牌 数组 然后选择一个索引 从而从数组中获取随机元素 prefix Foo Bar Baz page pr
  • 是否可以保存对 JavaScript 中尚不存在的元素的引用?

    我以前曾尝试问过这个问题 但很难解释 所以在这里我将尝试重新表述它 这是我的 HTML 正文