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/

你的.map函数替换为:

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

如果您确定 ID 的格式,则可以使用以下命令:

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

附言:将整个代码置于问题之中。它不长,如果你的jsFiddle发生了什么事,那么其他用户将无法理解答案。

将其修改为如下所示:

$("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);
});
这是一个

很多但是:

$("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);
});

我不认为它的 id 必须具有 id message_ 的 id 只是一个数字并将其转换为数字(如果您想返回一个带有数字的数组),如果没有找到数字,它将返回 0。

最新更新