gpt4 book ai didi

javascript - 如何使用 d3 更新文本输入的内容?

转载 作者:可可西里 更新时间:2023-11-01 13:11:06 25 4
gpt4 key购买 nike

我正在尝试在 D3 中创建一个需要将数据推送到文本输入中的文本输入控件。我可以用

设置初始值
d3.selectAll('#textfield')
.data([number])
.attr('value', function(d) { return d })

但是一旦有人编辑文本然后尝试外部更新,这就没有用了。有什么方法可以将内容设置为某个任意值吗?

我有 the code in JsFiddle .

更新:

我找到了 workaround :

var node = d3.selectAll('#textfield')
.data([number])
.node()
node.value = number

但我不确定这是否是正确的方法。有什么线索吗?

最佳答案

您正在设置 value 属性的值,而 value 恰好是一个特殊属性,它不能很好地与 setAttribute 函数(d3 内部用于设置属性)。

这种方法并没有好多少,但是 D3 的使用更加务实:

d3.selectAll('#textfield')
.data([number])
.each(function (d) {
this.value = d;
});

演示:http://jsfiddle.net/LGtDD/3/


此外,可以(也许应该)使用纯 JS 来执行此操作,除非您有令人信服的反对理由。为此使用 D3 可能有点矫枉过正:

document.getElementById('textfield').value = number;

关于javascript - 如何使用 d3 更新文本输入的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21828215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com