0
私はD3ライブラリを使用しています。プログラムIDで要素を選択したいのですが、そのIDにカンマが含まれています。私はデータの一部としてIDを読み込んでいるので、それを制御することはできません。文字列内のすべての特殊文字をエスケープするには?
私のコードは次のとおりです。
vはIDと一致する文字列ですg.nodes().forEach(function(v) {
d3.select('#'+v+)
.attr("cx", function(){return g.node(v).x; })
.attr("cy", function(){return g.node(v).y; })
});
。
特に、私がd3.select("#B_ne_,3")
を試してみると、d3.js:562 Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '#B_ne_,3' is not a valid selector.(…)
が得られます。
"#B_ne_\\,3"
を使用して選択できることがわかりましたが、どのようにこれらの文字を一般にエスケープできますか?
私はjqueryを使用していません。
var x = encodeURIComponent( "#B_ne_、3"); d3.select(x); –
[* cssesc *](https://github.com/mathiasbynens/cssesc)ライブラリがそのジョブを実行できるはずです。それには、[CSS文字エスケープシーケンス](https://mathiasbynens.be/notes/css-escapes)の詳細な説明が付属しています。 – altocumulus