我试图从一些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/
答案 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