selection.text(' ')
似乎转换特殊字符,因此它呈现实际文本,而不是我想要的空间。有没有办法阻止选择text()
方法为我做这个转义?对于上下文,这是一个表格单元格,对于选择中的某些元素是空的,我需要空格,以便正确渲染单元格。
答案 0 :(得分:32)
使用JavaScript Unicode转义符而不是HTML实体。 HTML中的
表示Unicode字符U + 00A0 so
selection.text('\u00A0')
应该做你想做的事。
答案 1 :(得分:8)
d3_selectionPrototype.text = function(value) {
return arguments.length < 1 ? this.node().textContent : this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.textContent = v == null ? "" : v;
} : value == null ? function() {
this.textContent = "";
} : function() {
this.textContent = value;
});
};
这里重要的一点是,在选择上调用.text()将在每个元素上设置textContent属性。因此,在您的情况下,正确的做法是使用
selection.text(' ');
因此,如果您想使用空格,那么您只需在文本中使用空格,而不是使用html编码的空格。如果你想使用html编码的字符,那么你必须将内容视为innerHTML。
selection.html(' ');