首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据部分匹配查找div id的值

根据部分匹配查找div id的值
EN

Stack Overflow用户
提问于 2012-01-29 13:54:32
回答 4查看 1.8K关注 0票数 2

我在一个页面上有几个div。它们的格式如下:

代码语言:javascript
复制
<div id='profile-1'></div>
<div id='profile-2'></div>
<div id='profile-3'></div>
<div id='profile-4'></div>

我需要找到id最高的div的值。在前面的示例中,它将是"profile-4“(因为4是最高的)。

我已经知道如何通过使用以下命令来搜索div:

代码语言:javascript
复制
var elements = $('[id^=profile-]')

这将返回一个对象。我需要获取该对象,并计算出"profile-4“是最高的,如果可能的话,提取值"4”。

有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-29 13:57:10

您可以执行以下操作:

代码语言:javascript
复制
var highest = 0;
$('[id^=profile-]').each(function(){
   var id = parseInt(this.id.split('-')[1], 10);
   highest = id > highest ? id : highest;
});

alert(highest); // 4

即使你有不同的顺序,这也会起作用,例如:

代码语言:javascript
复制
<div id='profile-1'></div>
<div id='profile-20'></div>
<div id='profile-3'></div>
<div id='profile-4'></div>

在这种情况下,将向20发出警报。

票数 6
EN

Stack Overflow用户

发布于 2012-01-29 14:03:19

这只是另一种方法:如果div总是按升序排列(就像你提供的HTML代码片段一样),你可以这样做:

代码语言:javascript
复制
$('div[id^=profile-]').get().reverse()[0]
票数 2
EN

Stack Overflow用户

发布于 2012-01-29 14:02:32

@Sarfraz's answer的基础上,您可以使用map构建漂亮的混淆代码:

代码语言:javascript
复制
var highest = Math.max.apply(null, $('[id^="profile-"]').map(function() {
  return [parseInt(this.id.split('-')[1], 10)];
}));

console.log(highest);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9051260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档