未捕获错误:语法错误,无法识别的表达式:'。b-brand-box'

时间:2013-10-18 23:00:40

标签: javascript jquery

我试图从jQuery调用JavaScript函数。当我尝试将参数传递给JavaScript函数时:

var brandRcObj = "b-brand-box";

$('.b-brand-box').on('mouseleave', function(){
    brandOn(brandRcObj);
});

我收到以下错误:

"Uncaught Error: Syntax error, unrecognized expression: '.b-brand-box'"

我这样做是因为我会在项目中多次使用相同的mouseleave事件。因此我想编写一个JavaScript函数,如下所示:

function brandOn(brandClass){

  var classObj = "'" + "." + brandClass + "'";
  var imgObj = "'" + "." + brandClass + " " + "img" + "'";

  $(classObj).css({
    backgroundColor: 'white',
    opacity: 1
  });
  $(imgObj).css({
    opacity: 1
  });
}

谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

'.b-brand-box'不是有效的类选择器 - .b-brand-box是。

你在动态生成的值周围加上单引号,虽然不应该有任何 - 你误解了JavaScript中的文本文字的符号 >语法,用于其实际字符串 value

'.b-brand-box'是JavaScript 代码中文本文字的符号,".b-brand-box"是另一种有效的编写方式。解析源代码后,这两个字符串的仅为.b-brand-box

你真正想要的只是简单地

"." + brandClass;

,仅此而已。

答案 1 :(得分:0)

您不需要所有这些报价,只要您拥有:

var classObj = "'" + "." + brandClass + "'";
var imgObj = "'" + "." + brandClass + " " + "img" + "'";

你需要的只是

var classObj = "." + brandClass; 
var imgObj = "." + brandClass + " " + "img";

解释器知道你有一个字符串