2012-07-02 149 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.