什么是字符串,或者它是从哪里来的
What is String or where does this come from?
在试图理解d3时,我看到了.text(String);
这行。我不明白弦应该是什么。我想也许它是一个空字符串(不),一个方法(我没有在api参考中看到),并思考它还可以是什么。
我在下面注释了它并得到了预期的结果。我不明白的是什么是字符串,为什么它工作。在这一行中,我的3个方框有文本(它是稍后将表示的数据的内部值),而注释掉它没有。
演示Html<div class='chart' id='chart-10'/>
<script src="http://d3js.org/d3.v3.min.js"></script>
JS:
var w = 360;
var h = 180;
var svg = d3.select("#chart-10").append("svg")
.attr("width", w)
.attr("height", h);
var g = svg.selectAll(".data")
.data([50,150,250])
.enter().append("g")
.attr("class", "data")
.attr("transform", function(d, i) { return "translate(" + 20 * (i + 1) + ",20)"; });
g.append("circle")
.attr("class", "little")
.attr("r", 1e-6);
g.append("rect")
.attr("x", -10)
.attr("y", -10)
.attr("width", 20)
.attr("height", 20)
.style("fill", "lightgreen")
.style("stroke", "green");
g.append("text")
.attr("dy", ".35em")
.attr("text-anchor", "middle")
;// .text(String);
g.attr("transform", function(d, i) { return "translate(" + 20 * (i + 1) + ",20)"; });
g.select("rect").style("opacity", 1);
g.select("circle").attr("r", 1e-6);
var t = g.transition().duration(750);
t.attr("transform", function(d, i) { return "translate(" + d + ",90)"; });
t.select("circle").attr("r", Math.sqrt);
t.select("rect").style("opacity", 1e-6);
它看起来像String
构造函数。根据d3文档,正如Matt指出的:
如果value是一个函数,则对每个选定元素(按顺序)求值该函数,传递当前数据
d
和当前索引i
,并将此上下文作为当前DOM元素。然后使用函数的返回值设置每个元素的文本内容。
因此,您在几行之前将g.data
设置为[50,150,250]
。每个数字由String
构造函数转换为String对象,返回并用作DOM节点的文本值。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 是否有必要使用 === 来比较 Javascript 中的字符串,或者 == 就足够了
- Javascript,字符串带有'<'或者'>'
- 在javascript中将base64图像转换为文件,或者如何使用jquery ajax传递一个大的base64字符串
- Javascript:使用变量,或者如果它's未定义,为默认字符串
- 使用“;或者'在选择器字符串中
- 使用“"或者''用javascript封装字符串
- 可以't$.parseJSON()当字符串保持src=“”时"或者id=“0”"属性
- 有没有办法把'&'在搜索查询字符串到'+'或者使用多个文本框扩展查询
- 将大数组分解成更小的数组,或者将大文本字符串分解成更小的字符串
- 在没有eval的情况下执行字符串,或者在这里使用eval
- 移除ASCII码«或者,raquo;JavaScript中的字符串
- 匹配连续-的正则表达式.或者字符串中的-(连字符和点)
- 安全地解析字符串,这样拆分就不会失败,或者如果失败,则至少返回0
- 如何用磁带为测试节点或javascript编写自定义断言,或者检查子字符串而不是t.deepEquals()
- 如何在不使用charAt()的情况下遍历JavaScript字符串,或者这是否重要?
- 实现字符串标记器的好方法(或者使用已经建立的)
- 什么是字符串,或者它是从哪里来的