2013-10-24 38 views
0

如果我這樣做與元素的id 10_food_select如何在此var聲明中獲取此數組的第一個元素?

var id = $(sel).attr("id").split("_"); 

我得到一個數組是這樣的:

["10", "food", "select"] 

我要的是ID = 10(或任何第一個元素是)。我稍後可以通過編寫id[0]得到這個結果,但是在第一個var聲明中,我如何簡單地使id等於split數組的第一個元素的值?

回答

0

你可以這樣做:

var id = $(sel).attr("id").split("_")[0]; // returns 10 

這會給你正確的ID直線距離,甚至沒有做

var id = $(sel).attr("id").split("_"); // returns ["10", "food", "select"] 
id = id[0];        // returns "10" 
4

[]幾乎和其他操作符一樣。

var id = $(sel).attr("id").split("_")[0]; 

既然大家都似乎是現在的提供的正則表達式,這裏是我的:

var id = +/[^_]*/.exec($(sel).prop("id")); 

如果它的將是一個數,你也可以這樣做:

var id = parseInt($(sel).prop("id"), 10); 

我想這幾乎涵蓋了有用的單線。

+0

簡單漂亮。 – Floris

+0

太糟糕了,你得到了第一個答案,給了多個選項,並沒有得到「接受」。 – Floris

0

我認爲你正在尋找這樣的:

var id = $(sel).attr("id").split("_")[0]; 
+2

以前發佈的答案的完全重複... – Floris

+1

這就是我腦海中的答案,它並不意味着我複製了它。 @弗洛里斯 –

+0

這很好 - 我沒有指責你剽竊。但是,如果目標是提供問題的答案,多次發佈相同的東西,同時顯示您也知道答案,但不會使網站(作爲問題和答案的存儲庫)更加有用/有價值。 – Floris

2

雖然另一種方式

var id = +($(sel).attr("id").replace(/_.+$/,'')); 
+0

「在第一個下劃線之後替換掉所有內容」。聰明。 – Floris

+0

很高興有人注意到':)' – Stphane

+1

+1用於*在過程中對其進行編號。 – techfoobar

0

或者你可以使用正則表達式替換,如果你需要的是從分裂的第一個:

var id = sel.id.replace(/^([^_]+).*/, '$1') 

注:$(sel).attr('id')是沒有必要的。 sel.id就足夠了。

相關問題