JQuery拆分数组元素

时间:2012-07-02 08:38:46

标签: jquery

我试图从一些li元素中获取id。但我不确定如何在数组中分割结果。因此message_1变为1,message_2变为2,依此类推。

<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/

4 个答案:

答案 0 :(得分:1)

.map功能替换为:

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

答案 1 :(得分:0)

如果您确定ID的格式,那么您可以使用:

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

P.S。整个代码都有问题。这不长,如果你的jsFiddle发生了什么事情,那么其他用户将无法理解答案。

答案 2 :(得分: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);
});

答案 3 :(得分: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