2010-03-18 82 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