2010-03-18 84 views
2

我有一些与jQuery选择器有关的问题。ID /类选择器

比方说,我想选择$('#elementID'),但elementID是一个变量。

var variable = elementID; $('#'+variable)之外,还有其他可能吗?我的意思是没有在其他地方指定#

谢谢!

回答

2

不是真的,没有。你需要“#”作为选择器来选择一个ID。没有理由不使用ID selector。或者你可以写自己的功能,是这样的:

$.id = function(id) 
{ 
    return $("#" + id); 
} 

var elementID = "elementID"; 
$.id(elementID).text(); 

这将返回与“elementID”的ID元素,而无需使用“#”。有点毫无意义。

+1

没有意义,真的,但如果一个简单的函数通过id获取单个元素将会在核心jQuery库中,那将会很不错。 +1 – 2010-03-18 21:58:07

+0

我喜欢这个解决方案:) – 2010-03-18 22:12:51

3

以下可能是最快的和干净的解决方案:

$(document.getElementById(elementID)) 

追加你的变量,以“#”会的工作,当然,但它的本质慢。

+0

适用于使用标准DOM方法的情况。使用'getElementById',您不必担心ID可能具有'.'(或':')字符,如果未转义则会破坏选择器字符串。 – bobince 2010-03-18 21:48:08

+0

问题是我想删除源的东西,而不是添加:)除此之外,我认为jQuery使用标准选择器可用。 – 2010-03-18 21:50:03

+0

我不明白这有什么不同。如果是这样,我可能读错了你的问题。 – 2010-03-18 21:52:48

1

你不要说不清楚是什么,但是:

var variable = '#' + elementID; 

$(variable)... 
+0

与我之前写的是一样的东西... – 2010-03-18 21:51:35

1

如果elementID是ala var elementID = '#someId'一个变量,我只想建议(虽然我没有尝试):

$(elementID) 

的jQuery/JavaScript的应该取消引用该变量为一个字符串值,正确的包裹ID进一步的操作...

1

我一直使用$('#'+ variable)。

+0

我也使用这种格式。但它似乎不太...优雅:) – 2010-03-18 21:56:36