使用JavaScript变量作为jQuery选择器时出现问题--无法识别的表达式
我试图使用JavaScript变量作为jQuery选择器来更改SVG路径的填充(实际上是“撤销”对它们所做的最新更改)。我能够正确访问上次修改的路径,以及它所填充的“颜色”,并且我已经用使用JavaScript变量作为jQuery选择器时出现问题--无法识别的表达式,javascript,jquery,svg,jquery-selectors,undo,Javascript,Jquery,Svg,Jquery Selectors,Undo,我试图使用JavaScript变量作为jQuery选择器来更改SVG路径的填充(实际上是“撤销”对它们所做的最新更改)。我能够正确访问上次修改的路径,以及它所填充的“颜色”,并且我已经用console.log()语句对此进行了双重检查 它们是: var path = Object.keys(allChanges[0]).shift(); var oldFill = Object.keys(allChanges[0]).map(function(key){ return allC
console.log()
语句对此进行了双重检查
它们是:
var path = Object.keys(allChanges[0]).shift();
var oldFill = Object.keys(allChanges[0]).map(function(key){
return allChanges[0][key];
}).shift();
“路径”和“旧填充”是它们应该是什么。我在这里尝试将它们用作jQuery选择器:
$("'#"+path+"'").css('fill', "'"+oldFill+"'");
但我收到的错误信息是
“语法错误,无法识别的表达式:'#node27'”撇号有问题。你必须更新这个
$("'#"+path+"'").css('fill', "'"+oldFill+"'");
用这个
$("#"+path).css('fill', oldFill);
你对撇号有问题。你必须更新这个
$("'#"+path+"'").css('fill', "'"+oldFill+"'");
用这个
$("#"+path).css('fill', oldFill);
你的报价有问题。您的变量已经是字符串,因此不需要引用它们 试试这个:
$("#" + path).css('fill', oldFill);
你的报价有问题。您的变量已经是字符串,因此不需要引用它们 试试这个:
$("#" + path).css('fill', oldFill);
你的引语不是太多了吗?jquery选择器是一个字符串,但是您在这个字符串中加了引号。您的引号不是太多了吗?jquery选择器是一个字符串,但是您在这个字符串中加了引号啊,这很有效!但是你为什么不需要引用呢??如果我手工写出来的话,我需要在选择器和oldFill周围加上引号……它们是自动插入的吗?基本上是双引号。你不需要引号和撇号。”#node27'或“#node27”,但不是“#node27'”
“#”
和path
都是字符串。把多余的撇号放进去,你是在做$(“#foo”)
,而不是$(“#foo”)
!但是你为什么不需要引用呢??如果我手工写出来的话,我需要在选择器和oldFill周围加上引号……它们是自动插入的吗?基本上是双引号。你不需要引号和撇号。”#node27'或“#node27”,但不是“#node27'”“#”
和path
都是字符串。把多余的撇号放进去,你是在做$(“#foo”)
,而不是$(“#foo”)
。哦!我没有意识到变量已经是字符串了。当我把它们记录下来的时候,它们看起来不像,所以我想我需要引用。哦!我没有意识到变量已经是字符串了。当我把它们记录下来时,它们看起来不像,所以我想我需要引用。