【发布时间】:2011-12-02 02:09:41
【问题描述】:
我不太确定 javascript、DOM 或 d3.js 的哪些方面,这暴露了我缺乏知识:只知道我很抱歉提出以下这样一个基本问题。我是新来的。
我有一个这样的 json:
[{"link":"a", "count": 3}, {"link":"b", "count": 4}, {"link":"c", "count": 2}]
我想做一些看起来像
的东西<ul>
<li> <a>a</a> (3)</li>
<li> <a>b</a> (4)</li>
<li> <a>c</a> (2)</li>
</ul>
使用 d3.js(为了解决显而易见的问题:我想用 d3 做更多事情,这只是解决了我遇到的问题)。
在我的 html 中弹出 <ul> 标记后,在来自 d3.json 的回调中某处我可以写如下内容:
d3.select("ul")
.selectAll("li")
.data(json)
.enter()
.append("li")
.append("a")
.text(function(d){return d.link})
(虽然这是未经测试的!javascript 的人如何测试一小段代码?)。这将(可能)给我
<ul>
<li><a>a</a></li>
<li><a>b</a></li>
<li><a>c</a></li>
</ul>
但现在我无法摆脱<a> 标签!我无法弄清楚this 和选择父母或其他什么不合情理的组合,我需要在列表项标签关闭之前添加额外的信息。我需要做什么?
【问题讨论】:
-
“javascript 的人如何测试一小段代码?” - jsfiddle.net
-
恐怕我不知道 d3 语法,但你能不能在附加 'a' 之前简单地在 'li' 元素中输出 d.count ?从而规避向上遍历的需要?
-
@dougajmcdonald 不会把 d.count 放在链接前面而不是后面吗?
-
@James Allardice 谢谢!
标签: javascript json dom d3.js