2012-07-02 150 views
0

我試圖從某些li元素獲取id。但我不確定如何在數組中分割結果。所以message_1變成1,message_2變成2等等。JQuery拆分數組元素

<ul id="chat_viewport"> 
<li id="message_1">message</li> 
<li id="message_2">message this and that</li> 
<li id="message_3">3</li> 
<li id="message_4">4</li> 
<li id="message_5">5</li> 
</ul> 


<a href="#" class="test">TEST</a>​ 


$("a.test").click(function(e) { 
e.preventDefault(); 

var idarray = $("#chat_viewport") 
     .find("li") //Find the li in #chat_viewport 
     .map(function() { return this.id; }) //Project Ids 
     .get(); //ToArray 

var biggest = Math.max.apply(null, idarray); 

alert(idarray); 
});​ 

我這裏有http://jsfiddle.net/T5x5d/

+0

試試這個如果我已經延長:'return this.id.replace 'message_','')' –

回答

1

一個例子這種替換您.map功能:

function() { return this.id.replace('message_', ''); } 
0

如果確認ID的格式,那麼你可以使用這個:

.map(function() { return this.id.split('_')[1]; }) 

PS把整個代碼置疑。它不長,如果你的jsFiddle發生了什麼,那麼其他用戶就不會理解這個答案。

0

修改它看起來像這樣:

$("a.test").click(function(e) { 
e.preventDefault(); 

var idarray = $("#chat_viewport") 
     .find("li") //Find the li in #chat_viewport 
     .map(function() { return this.id.split('_')[1]; }) //Project Ids 
     .get(); //ToArray 

var biggest = Math.max.apply(null, idarray); 

alert(idarray); 
}); 
0

這是一個給多少,但:

$("a.test").click(function(e) { 
    e.preventDefault(); 
    var idarray = $("#chat_viewport") 
     .find("li") //Find the li in #chat_viewport 
     .map(function() { 
      var match = /(\d+)/.exec(this.id); 
      return match !== null ? parseInt(match[0]) : 0; 
     }) //Project Ids 
     .get(); //ToArray 
    var biggest = Math.max.apply(null, idarray); 

    alert(biggest); 
}); 

我不採取帳戶,它必須有message_中只是一個數字在的ID它的ID並將其轉換爲數字(如果你想返回一個包含數字的數組),如果沒有找到數字,它將返回一個0.