0

私のシナリオは次のようなものです: クラスのリストからクラスを選択しようとしています。クラスは数字で始まりますが、文字列型です (チェックしました)。

list_item.on("click", function(){
  var to_find = $(this).text().replace(/\s/g, "_");

  console.log(typeof(to_find)); // on a certain moment this will become "00s"

  sampleSVG.selectAll(".node:not(."+to_find+") circle, .line:not(."+to_find+")")
    .transition()
    .duration(500)
    .style("fill", st_colours.node.fill)
    .style("stroke", function(d){return d.type == "node" ? st_colours.node.stroke : st_colours.line.stroke});

  sampleSVG.selectAll(".node."+to_find+" circle, .line."+to_find)
    .transition()
    .duration(1000)
    .style("fill", st_colours.random(a))
    .style("stroke", d3.rgb(st_colours.random(a)).darker());
});

「var to_find」が「00s」に変わると、次のエラーが発生します。

SyntaxError: An invalid or illegal string was specified

このエラーが発生する理由を誰か教えてもらえますか?

4

1 に答える 1

3

セレクターでは、00s という名前のクラスを参照しています。

.node:not(.00s)

CSS 文法によると、クラス名はアンダースコア、ダッシュ、または文字で始まる必要があります。おそらく、これが SyntaxError に遭遇した理由です。

参照: CSS クラス名/セレクターで有効な文字はどれですか?

于 2012-10-29T17:42:06.407 に答える