2012-05-06 63 views
0

我正在创建一个web应用程序,我得到了一个我无法解决的简单问题。我已经把它创建这里的问题代码:http://jsfiddle.net/rkumarnirmal/5w3FG/javascript语法错误:uncaught表达式

什么是与它应该显示这个答案

current 
第二警报()的问题

的问题是:

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

不显示身份证。

但是,当我给

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

它的工作原理。我对选择器做了什么错误吗?

谢谢!

回答

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
$(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

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

alert(c);