Javascript 基于部分匹配查找div id的值
我在一页上有几个div。它们的格式如下:Javascript 基于部分匹配查找div id的值,javascript,jquery,Javascript,Jquery,我在一页上有几个div。它们的格式如下: <div id='profile-1'></div> <div id='profile-2'></div> <div id='profile-3'></div> <div id='profile-4'></div> 这将返回一个对象。我需要取那个对象,计算出“profile-4”是最高的,如果可能的话,提取值“4” 有什么想法吗 您可以执行以下操作: var
<div id='profile-1'></div>
<div id='profile-2'></div>
<div id='profile-3'></div>
<div id='profile-4'></div>
这将返回一个对象。我需要取那个对象,计算出“profile-4”是最高的,如果可能的话,提取值“4”
有什么想法吗 您可以执行以下操作:
var highest = 0;
$('[id^=profile-]').each(function(){
var id = parseInt(this.id.split('-')[1], 10);
highest = id > highest ? id : highest;
});
alert(highest); // 4
即使您有不同的订单,这也会起作用,例如:
<div id='profile-1'></div>
<div id='profile-20'></div>
<div id='profile-3'></div>
<div id='profile-4'></div>
在这种情况下,20
将收到警报。基于此,您可以使用map
构建模糊的代码:
var highest = Math.max.apply(null, $('[id^="profile-"]').map(function() {
return [parseInt(this.id.split('-')[1], 10)];
}));
console.log(highest);
下面是另一种方法:如果
div
始终按升序排列(如您提供的HTML代码片段),则可以执行以下操作:
$('div[id^=profile-]').get().reverse()[0]
你忘记了一个重要的部分-转换为整数。添加并检查结果:)@Cheery:实际上没有检查:)现在已更新。Thanks@JasonSmall:答案已更新,请确保已更新。顺便说一句,下面是一个工作示例:
$('div[id^=profile-]').get().reverse()[0]
var highest = Math.max.apply(null, $.map($('[id^=profile-]'), function(el) {
return el.id.split('-')[1];
});)
var highest_div = $('#profile-'+highest);