selection.text(' ')
特殊文字を変換して、必要なスペースではなく実際のテキストをレンダリングするように見えます。text()
選択のメソッドがこれをエスケープするのを防ぐ方法はありますか?コンテキストとして、これは選択範囲内の一部の要素に対して空のテーブルセルであり、セルが適切にレンダリングされるように、そこにスペースが必要です。
質問する
14352 次
2 に答える
40
HTMLエンティティではなくJavaScriptUnicodeエスケープを使用します。
HTMLでは、Unicode文字U+00A0を示します。
selection.text('\u00A0')
あなたがやりたいことをする必要があります。
于 2012-10-14T15:26:43.440 に答える
9
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(' ');
于 2012-10-14T14:45:28.670 に答える