javascript语法错误:未捕获的表达式

时间:2012-05-06 13:04:08

标签: javascript jquery

我正在创建一个Web应用程序,在那里我遇到了一个我无法解决的简单问题。我在这里提出了产生问题的代码:http://jsfiddle.net/rkumarnirmal/5w3FG/

应该显示此答案的第二个警告()有什么问题

current

问题是:

var b = '.something';
var c = $(b).attr("id");
alert(c);

未显示ID。

但是,当我给出

var c = $('.something').attr("id");
alert(c);

有效。我对选择器做错了吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

你的小提琴实际上是不同的。

var b = "." + a.split(/\s+/).pop();

有效,因为它是一个.后跟一个类名。您在字符串中包含"',这意味着'是选择器的一部分(这是语法错误)。

您可以传递$("abc")之类的字符串,其中abc是选择器。如果你使用这样的变量:

var selector = "abc";  // the selector abc stored in a variable as a string
$(selector);           // the selector is passed to jQuery

然后您不应使用其他'" s。

答案 1 :(得分:1)

$(function(){
var a = $('#current').attr("class");
var b = "."+a.split(/\s+/).pop(); // not "'."+a.split(/\s+/).pop()+"'";
    alert(b);
var c = $(b).attr("id");
    alert(c);
});

<强> DEMO

答案 2 :(得分:0)

var a = $('#current').attr("class");
var b = "." + a.split(/\s+/).pop();
alert(b);
var c = $(b).attr("id");

alert(c);