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是正常语法,所以我在构建选择器时添加了它们。是的,看了很久,我就陷入了混乱。不明白为什么。谢谢