0

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

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

current

问题是:

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

没有显示id。

但是,当我给

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

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

谢谢!

4

3 回答 3

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 或"s。

于 2012-05-06T13:06:07.410 回答
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);
});

演示

于 2012-05-06T13:07:37.727 回答
0
var a = $('#current').attr("class");
var b = "." + a.split(/\s+/).pop();
alert(b);
var c = $(b).attr("id");

alert(c);
于 2012-05-06T13:09:10.457 回答