2012-07-02 3 views
0

Я пытаюсь получить идентификаторы от некоторых элементов li. Но я не уверен, как разделить результаты в массиве. Таким образом 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

Если вы уверены, что формат идентификаторов, то вы можете использовать это:

.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_ просто номер в его идентификатор и преобразовать его в число (если вы хотите вернуть массив с числами), если число не было найдено, оно вернет 0.

Смежные вопросы