我正在用D3树制作orgchart。在每个节点中,我都有几个ID。我想单击我的ID并在弹出窗口中获取此ID。到目前为止,当我单击节点的一个ID时,可以获得所有节点的ID。 确切地说,我使用的JSON中存储了我所有的ID,而显示所有节点的ID的方式是:
.on('click', function () {
window.alert(d.data.id);
})
所以我想我需要一个X变量来知道我要单击的ID并显示为:
.on('click', function () {
window.alert(d.data.id[X]);
})
问题是,如何获得X,或者有更好的方法来实现(我不太了解js)
我真的很坚持,谢谢您的阅读。
编辑:为清楚起见,我添加了更多代码:
nodeEnter.append('text').each(function (d) {
var j = 0;
while (d.data.id[j] && d.data.id[j] != "") {
d3.select(this)
.style("fill", "black")
.style("text-anchor", "middle")
.attr('cursor', 'pointer')
.on('click', function () {
alert(d.data.id[j]);
})
.append('tspan')
.text(d.data.id[j])
.append('tspan')
.text(d.data.label[j]);
j++;
}
})
id是JSON中ID的数组。每个节点包含一个ID数组。因此,我需要将“ j”和我写的东西(id和标签)绑定在一起。
答案 0 :(得分:0)
有更好的方法
将隐藏的HTML字段添加到每个节点,然后单击以找到该字段并获取其值
.on('click', function () {
alert($(this).find("[type=hidden]").val());
})