在JavaScript中获得最高ID

问题描述

| 我的HTML中每个小数ID的跨度都不同:
<span id=\"1\">Lorem Ipsum</span>
<span id=\"23\">Lorem Ipsum</span>
<span id=\"6\">Lorem Ipsum</span>
我想使用javascript获取最高的ID。在这种情况下,它应该返回23。 我怎样才能做到这一点? 谢谢。

解决方法

请注意这些用于HTML 4的DOM ID的规则(HTML 5具有不同的规则)。如果更改为以字母开头,则可以在解析之前使用子字符串或正则表达式删除数字部分。以下代码在数字部分之前假定字母的前缀(例如\'\'),并且是普通JS,不需要jQuery。
// get all spans
var spans = document.getElementsByTagName(\"span\");
var length = spans.length;
// variable for the highest one
var highest = 0;
// loop over to find the highest ID by looking at the property parsed as an int
for(var i = 0; i < length; i++) {
    var id= parseInt(spans[i].id.substring(1,spans[i].id.length),10);
    if(id > highest) {
        highest = id;
    }
}
alert(highest);
看到它在行动 您也可以在jQuery中执行此操作:
var highest = 0;
$(\"span\").each(function() {
    var id = parseInt(this.id.substring(1,this.id.length),10);
    if(id > highest) {
        highest = id;
    }
});
alert(highest);
实际观看,ID必须以字母开头。它们不能仅是数字。,
var els = document.getElementsByTagName(\'span\'),highest = 0,i,cur;

for (i = 0; i < els.length; i++) {
    cur = parseInt(els[i].id,10);
    if (els[i].id > highest) {
        highest = cur;
    }
}
highest
将包含最大值。 但是请注意,在HTML4中,元素ID以非字母字符开头是非法的: ID和NAME令牌必须以字母([A-Za-z])开头,后跟任意数量的字母,数字([0-9]),连字符(\“-\”),下划线(\“ _ \“),冒号(\”:\“)和句点(\”。\“)。 (资源) 如果您使用的是HTML5,这不是问题。而且,它仍然可能会正常工作。,ID和NAME令牌必须以字母([A-Za-z])开头,后跟任意数量的字母,数字([0-9]),连字符(\“-\”),下划线(\“ _ \“),冒号(\”:\“)和句点(\”。\“)。 资源 我的解决方案是:
var item = $(\'span\').get(0);
var max_id = parseInt($(item).attr(\'id\'));
$(\'span\').each(function(){
   var curr_id = parseInt($(this).attr(\'id\'));
   if (curr_id > max_id){
       max_id = curr_id;
       item = $(this);
   }
});

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...