Javascript 存储动态用户输入的JS和/或D3方法

Javascript 存储动态用户输入的JS和/或D3方法,javascript,d3.js,Javascript,D3.js,我的问题与这里提出的问题类似: 我的用例在一个关键方面不同,我没有静态输入。在任何时候,我的页面上都可能有1到3个用户编号输入。它们也被动态删除,所以我不能只创建它们,然后根据需要设置样式,比如使用display:hidden 我的问题是:什么是一个js解决方案,它可以将用户输入存储到一个数组中,在元素还没有被附加的情况下(如果元素没有被附加(!==null),该解决方案对可能被附加或可能没有被附加的输入都具有鲁棒性 或如果d3使用比本机javascript更简单的方法将数字输入存储到数组中,那

我的问题与这里提出的问题类似:

我的用例在一个关键方面不同,我没有静态输入。在任何时候,我的页面上都可能有1到3个用户编号输入。它们也被动态删除,所以我不能只创建它们,然后根据需要设置样式,比如使用
display:hidden

我的问题是:什么是一个js解决方案,它可以将用户输入存储到一个数组中,在元素还没有被附加的情况下(如果元素没有被附加(
!==null
),该解决方案对可能被附加或可能没有被附加的输入都具有鲁棒性

如果d3使用比本机javascript更简单的方法将数字输入存储到数组中,那么这也是一个可以接受的答案。我假设这个选择:
d3.selectAll('#input1,#input2,#input3')
,但我不确定是否可以从这样的选择中检索值并将其存储在数组中

下面是一个已解决的示例:

文档可能有3个输入,但假设文档的当前状态只有2个ID为的输入:
\input1
\input2
。因此,我需要存储现有输入的值,并为
#input3
存储一个0,因为它尚未创建。我不知道如何根据这些要求创建数组。我的想法是:

my_array.push(d3.selectAll('#input1,#input2,#input3').each().value())

但正如我上面所说,我希望数组包含每个输入的值
push()
只会将另一项添加到数组中。如果事件侦听器被触发超过3次,那么数组将超过3个值,这不是我想要的。我只想要一个数组,该数组使用所有现有数字输入的当前值进行更新(如果尚未追加输入,则值为0)。

您的问题不太清楚,但在我看来,您希望获得输入的所有值,而不知道页面上有多少输入

如果是这样的话,你可以简单地使用

d3.selectAll("input[type=number]")
,它将在调用函数时获取页面上的所有输入

这是一个演示,请看控制台:

d3.选择(“按钮”)。在(“单击”,函数()上){
var输入=[];
d3.选择全部(“输入[类型=数字]”)。每个(函数(){
输入。推送(该值);
})
控制台日志(输入);
})

请输入数据

输入1
输入2
投入3


提交
为了清晰起见,我刚刚修改了帖子。是的,我刚看到,谢谢。正如我所怀疑的,您只是想获得页面上的所有输入,而不知道有多少输入。所以,您可以测试我的解决方案。我有其他不是数字类型的输入。所以我认为这会影响选择。是否有类似于:
d3.selectAll('input[type=number]')
或者我必须指定一个特定的类来缩小选择范围?我在帖子中试图澄清的另一件事是,如果我使用
push()
,那么数组可能会超过输入的总数,因为调用数超过4。有没有办法只更新
输入
数组来包含输入的当前值(在我的例子中最多3个)?如果你看我的代码片段,每次按下按钮你都会看到数组是空的。我认为最好的办法是发布另一个问题,因为这实际上是另一个问题。