Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于部分匹配查找div id的值_Javascript_Jquery - Fatal编程技术网

Javascript 基于部分匹配查找div id的值

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。它们的格式如下:

<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);