-1

我有一个 div 列表,每个 div 都有数据 ID 号。

<div id="divblocks">
<div data-id="200"></div>
<div data-id="210"></div>
<div data-id="170"></div>
<div data-id="230"></div>
</div>

如何从这一系列 DIV 中获得最大的 id 编号?

像这样的东西:

maxid = jQuery('#divblocks').find("div").max().data("id");
4

2 回答 2

0

我的长版:

const $divs = $('#divblocks div')

// parsing nodeList to arrayList
const arrayDivs = Array.from($divs)

// getting array ids values
const arrayDataIds = arrayDivs.reduce((acc, item) => {
  acc.push($(item).data('id'))
  return acc
}, [])

// getting max value of ids
const largestId = Math.max.apply(null, arrayDataIds)

console.log(largestId)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="divblocks">
    <div data-id="200"></div>
    <div data-id="210"></div>
    <div data-id="170"></div>
    <div data-id="230"></div>
</div>

小版本:

const $divs = $('#divblocks div')

const largestId = Math.max.apply(null, Array.from($divs).reduce((acc, item) => {
  acc.push($(item).data('id'))
  return acc
}, []))

console.log(largestId)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="divblocks">
    <div data-id="200"></div>
    <div data-id="210"></div>
    <div data-id="170"></div>
    <div data-id="230"></div>
</div>

以 div 为目标:

$(`div [data-id="${largestId}"]`)
于 2019-07-06T07:18:44.290 回答
0

循环遍历 div 并成对比较 id:

var highest_id = 0;
var id;
$('#divblocks > div').each(function(i,e){
    id = $(e).data('id');
    if(highest_id < id){
        highest_id = id;
    }
});

alert(highest_id);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="divblocks">
    <div data-id="200"></div>
    <div data-id="210"></div>
    <div data-id="170"></div>
    <div data-id="230"></div>
</div>

于 2019-07-06T06:34:06.367 回答