jQuery - получите список значений атрибута от элементов класса

У меня есть класс .object которому назвали атрибут level. Я хочу получить список всех различных значений level на странице, таким образом, я могу выбрать самый высокий.

Если я делаю что-то как:

$(".object").attr("level")

... это получит меня список значений, которые являются значениями атрибута уровня? Я подозреваю не, но затем как дела что-то как этот?

Примечание: Я не хочу выбирать объект HTML для управления, как более распространено, скорее я хочу выбрать значения атрибута.

Править: Для получения самого высокого "уровня", я сделал это, но это, кажется, не работает. Я попробую другой предложенный метод теперь.

var highLevel=0;
$.each(".object[level]", function(i, value) {
   if (value>highLevel) {
       highLevel=value;
   }
});

alert(highLevel);
81
задан Matt 2 March 2013 в 23:38
поделиться

4 ответа

<script type="text/javascript"> 
var max = 0;
jQuery(document).ready(function(){ 
    jQuery('.object[level]').each(function(){
        var num = parseInt($(this).attr('level'), 10);
        if (num > max) { max = num; }
    });
    alert(max);
});
</script>

Я предполагаю такую разметку:

<div class="object" level="1">placeholder</div>
<div class="object" level="10">placeholder</div>
<div class="object" level="20">placeholder</div>
<div class="object" level="1000">placeholder</div>
<div class="object" level="40">placeholder</div>
<div class="object" level="3">placeholder</div>
<div class="object" level="5">placeholder</div>

Для моего кода я получаю предупреждение "1000".

Вот еще одно решение, объединяющее несколько ответов от harpo, lomaxx и Kobi:

jQuery(document).ready(function(){ 
    var list = $(".object[level]").map(function(){
        return parseInt($(this).attr("level"), 10);
    }).get();
    var max = Math.max.apply( Math, list ); 
    alert(max);
});
3
ответ дан 24 November 2019 в 09:29
поделиться

$(".object").attr("level") просто вернет атрибут первого элемента .object.

Это даст вам массив всех levelов:

var list = $(".object").map(function(){return $(this).attr("level");}).get();
183
ответ дан 24 November 2019 в 09:29
поделиться

Первая часть вопроса, получение значений атрибутов в массив. См. этот вопрос

jQuery получить атрибуты источника img из списка и отправить в массив

Вы бы сказали

var levelArray = $('.object').map( function() {
    return $(this).attr('level');
}).get();

Вторая часть вопроса, вы можете использовать эту технику, чтобы получить наибольшее значение

var maxValue = Math.max.apply( Math, levelArray );
26
ответ дан 24 November 2019 в 09:29
поделиться

selector

$(".object[level]")

даст вам все элементы dom с классом object и атрибутом level.

Затем вы можете просто использовать метод .each() для перебора элементов, чтобы получить наибольшее значение

2
ответ дан 24 November 2019 в 09:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: