Ответ 1
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(' ');