2016-03-02 68 views
1

我見過這個問題問過幾次,但我收回了一些奇怪的結果。在jQuery的某個點/字符處分割一個字符串

javascript中的split()是否將字符串轉換爲數組?

基本上,onClickconsole.log - $(this).attr('class')

我從我的元素是styled_main selected_origin類。我想第二類追加到另一個元素,所以我這樣做:$(this).attr('class').split("styled_main ")

不過,我回去一個數組,看起來像["", "selected_origin"]我試圖讓這回只是字符串應該是這樣的:selected_origin

+1

支持分裂消除了,你是分裂的性格,所以'styled_main'選擇爲分離器,將刪除'styled_main'從你的結果,並給一個空字符串作爲第一場比賽(其餘所有將只是文本的其餘部分(正如我猜測,你的分離器只在你的文本中發生一次)) – Icepickle

+0

'JavaScript中是否分割()將字符串轉換爲數組?'split()'返回一個當然是 –

+1

的數組您也可以使用'$(this).attr('class')。replace(「styled_main」,'')' – jcubic

回答

3

您可以通過空間分割你的字符串,它將返回["styled_main", "selected_origin"]再拿到第二列(索引1),如:

$(this).attr('class').split(" ")[1]; 
//OR 
$(this).attr('class').split(/\s+/)[1]; 

希望這有助於。


alert("styled_main selected_origin".split(/\s+/)[1]);

+0

工作正常。謝啦!爲什麼這樣做?爲什麼我要通過'[1]''。另外,我的第一次嘗試怎麼不起作用? – PourMeSomeCode

+1

Ahh好吧,我看到感謝您更新答案:) – PourMeSomeCode

4

你也可以使用:

this.classList[1] 

classList

+0

vs'$(this).attr('class')是否有任何好處。split(「」)[1];'?爲什麼你會用另一個呢?爲了可讀性? – PourMeSomeCode

+0

@ DevJuniorThe50421st如果由於某種原因在每個類之間存在多個空間集,則僅在一個空間上拆分就會失敗。至少你應該使用'.split(/ \ s + /)'而不是'.split(「」)'。 –