Javascript 获取多个DOM元素的文本,以便稍后在D3.js中重用
我在提取多个Javascript 获取多个DOM元素的文本,以便稍后在D3.js中重用,javascript,d3.js,Javascript,D3.js,我在提取多个元素的文本以便稍后在列表中重用时遇到了一些问题。我正在获取包含整个DOM元素的数组,但无法仅获取文本,如下所示: // this works... form.selectAll("legend").each(function(d,i) { console.log("text: " + i + " is " + d3.select(this).text()) }) 这是我的密码: var form = d3.select("#print-form"), progress
元素的文本以便稍后在列表中重用时遇到了一些问题。我正在获取包含整个DOM元素的数组,但无法仅获取文本,如下所示:
// this works...
form.selectAll("legend").each(function(d,i) {
console.log("text: " + i + " is " + d3.select(this).text())
})
这是我的密码:
var form = d3.select("#print-form"),
progress = d3.select("#progress"),
steps = form.selectAll("legend").nodes();
progress
.selectAll("li")
.data(steps)
.enter()
.append("li")
.text(function(d,i) { return d ? "Step " + (i + 1) + ": " + this.text() : "err"; });
HTML:
打印类型
产品
风格
材料
完成
传送
你的细节
和
我的错误在哪里?绑定到li元素的数据是dom元素(节点)的数组。因此,您必须将变量
d
转换为d3选择以应用文本函数
改变
return d ? "Step " + (i + 1) + ": " + this.text() : "err";
到
var form=d3.选择(“打印表单”),
进度=d3。选择(“进度”),
st=[“一”、“二”、“三”],
步骤=form.selectAll(“图例”).nodes();
进步
.selectAll(“li”)
.数据(步骤)
.输入()
.附加(“li”)
.文本(功能(d,i){
返回d?“步骤”+(i+1)+:“+d3.select(d).text():“err”;
});代码>
打印类型
产品
风格
材料
完成
传送
你的细节
就在你以为自己已经看到了一切的时候。。。起初,我认为这是胡说八道<代码>选择(d)
-phhhh;-)此外,在三元运算符中混合字符串:“
并不能真正提高可读性。抢手货我从未见过,也不会想到d3。请选择(d),谢谢!我想知道我是否把事情复杂化了,还有更好的方法吗?
return d ? "Step " + (i + 1) + ": " + this.text() : "err";
return d ? "Step " + (i + 1) + ": " + d3.select(d).text() : "err";