Javascript 为什么在构造选择器时会出现语法错误

Javascript 为什么在构造选择器时会出现语法错误,javascript,jquery,Javascript,Jquery,这是后续问题 第一个完全键入的选择器将查找所有其他选择器给出的语法错误值,即使它们“看起来”完全相同 $(".smoothie").on("mouseover", function(event) { // .. other code // first value = $(".row_2.tuesday .e_1.current_Status .smoothie_Text").attr("value");

这是后续问题

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

    $(".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'});    
谁能告诉我我做错了什么

编辑

控制台中的错误为:

错误:语法错误,无法识别的表达式:'[在此错误上中断]

抛出新错误(“语法错误,无法识别的表达式:“+msg”)


从昨天的询问中我们知道是来自sizzle。

您的第二个和第三个字符串的末尾都包含引号。选择器不应在末尾包含引号。就是这么简单。

通过删除
\'
来尝试它,因此它应该如下所示

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

在选择器代码中不需要
\'

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

        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);

它们不相同,第二个和第三个选择器被引号包围。您不应该在选择器周围使用引号。为什么要在字符串中转义引号?@tborychowski更好的问题是为什么引号会出现。第三个例子确实合法地要求转义引号。好吧,我陷入了一个混乱,我认为我需要引号来完成选择器,因为$(“#someid.someclass”)。dosomething是正常语法,所以我在构建选择器时添加了它们。是的,看了很久,我就陷入了混乱。不明白为什么。谢谢