2012-12-06 178 views
2

这是后续问题。构建选择器时为什么会出现语法错误

完全键入的第一个选择器找到值,即使它们“看起来”相同,所有其他选择器也会给出语法错误。

$(".smoothie").on("mouseover", function(event) { 
      // .. other code 

      // first  
      value = $(".row_2.tuesday .e_1.current_Status .smoothie_Text").attr("value"); 
      alert(value); 

      // second 
      selector = "\'.row_2.tuesday .e_1.current_Status .smoothie_Text\'"; 
      alert(selector); 
      value = $(selector).attr("value"); 

      //third 
      value = $("\"." + row_Classes[0] + "." + row_Classes[1] + " ." + container_Classes[0] + "." + container_Classes[1] + " .smoothie_Text\"").attr("value"); 
      alert(value); 
      //.. other code 
}).svg({loadURL: '../_public/_icons/smoothie.svg'});  

请问一些人,请告诉我做错了什么。

编辑

从控制台错误是:

Error: Syntax error, unrecognized expression: ' [Break On This Error]

throw new Error("Syntax error, unrecognized expression: " + msg);

这一点我们从昨天的查询知道是从咝咝声。

+0

它们并不相同,第二和第三选择符都被引号包围。你不应该在选择器周围使用引号。 –

+1

你为什么要逃避字符串中的引号? – tborychowski

+0

@tborychowski一个更好的问题是为什么引用是在那里。第三个例子事实上确实需要转义报价。 –

回答

3

您的第二个和第三个字符串都在末尾包含引号。选择器不应该在结尾处包含引号。这很简单。

+0

是的,看着这个长了一大堆。看不出为什么。谢谢。 – codepuppy

3

尝试通过删除\',所以它应该像下面

// second 
selector = ".row_2.tuesday .e_1.current_Status .smoothie_Text"; 

没有必要在你选择的代码\'

+0

看上面的评论 – codepuppy

0

尝试删除斜杠\和单引号'

 selector = ".row_2.tuesday .e_1.current_Status .smoothie_Text"; 
     alert(selector); 
     value = $(selector).attr("value"); 

     //third 
     value = $(row_Classes[0] + "." + row_Classes[1] + " ." + container_Classes[0] + "." + container_Classes[1] + " .smoothie_Text").attr("value"); 
     alert(value); 
相关问题