Подтвердить что ты не робот

Как добавить с использованием метода d3.js selection.text()

selection.text(' ') появляется для преобразования специальных символов, поэтому он отображает фактический текст, а не пространство, как я хочу. Есть ли способ предотвратить использование метода text() для выбора из этого для меня? Для контекста это ячейка таблицы, которая пуста для некоторых элементов в выборе, и мне нужно пространство там, чтобы ячейки отображались правильно.

4b9b3361

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

Ответ 2

Используйте escape-код Unicode JavaScript, а не объект HTML. &nbsp; в HTML обозначает символ Unicode U + 00A0, поэтому

selection.text('\u00A0')

должен делать то, что вы хотите.