Код, который вы написали, на самом деле не выполняет то, о чем просит ваш вопрос (ответ @ RiteshKhandekar делает то, о чем вы просили). Если вы предполагаете, что ваши скобки расположены в порядке возрастания, тогда ваш код работает, но, возможно, он не самый лучший. На самом деле ваше требование ближе к «найти последний элемент в отсортированном массиве, который меньше некоторой динамически выбранной цели».
Поскольку вы сказали, что ваша структура создается динамически, написание кода, который проверяет каждую возможность, не является идти на работу. Вам нужно создать что-то, способное работать с произвольными данными. Вы можете сделать это следующим образом:
// binary search implementation, since the data is sorted
function last(array, target)
{
let start = 0
let end = array.length-1;
let index = -1;
while (start <= end) {
let mid = ~~((start + end) / 2);
if (array[mid] >= target) {
end = mid - 1;
}
else {
index = mid;
start = mid + 1;
}
}
return index
}
let divs = $(".data-table>div")
let values = []
// Generate an array from the set of values in the HTML
divs.each(function(){
values.push(parseInt(this.getAttribute('val')) )
})
// find the last index smaller than the target value
let index = last(values, 26000)
// add error checking for index == -1
// do something with the index
console.log(divs.get(index).getAttribute('result'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="data-table">
<div class="data-table-item" sign="<" val="10000" result="1"></div>
<div class="data-table-item" sign=">=" val="10000" result="2"></div>
<div class="data-table-item" sign=">=" val="25000" result="3"></div>
<div class="data-table-item" sign=">=" val="50000" result="4"></div>
</div>