jquery получает высоту div

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть 3 подразделения.

 <div class="bg1"></div>
<div class="bg2"></div>
<div class="bg3"></div>
 

И я пытаюсь получить их высоту и установить их css с помощью jquery.

 $('[class^=bg]').each(function(key,val){
     // tried, val.height() val.outerHeight val.innerHeight, this.height() etc
});
 

console.log(val) просто показывает <div class="bg1"></div> вместо объекта jquery, как мне получить и изменить высоту каждого div в этом цикле?

Комментарии:

1. Нет ни одного div с упомянутым классом bg.

2. вместо этого попробуйте $(val). height();

3. @Kiee ты пытаешься получить комбинированные высоты? Отдельные высоты? Я не понимаю, что вы пытаетесь сделать.

4. Большое тебе спасибо @Neablis, который сделал свое дело, Джош, я пытался получить высоту каждого человека, но через foreach, сопоставленный с 3 вызовами. height()

Ответ №1:

Вы правы, что ваши функции не работают, потому val что это объект DOM вместо объекта jQuery. Вы можете получить желаемый эффект, преобразовав каждый val объект DOM в объект jQuery, обернув его с $() помощью .

Этот код должен работать так, как вы хотите:

 $('[class^=bg]').each(function(key,val){
    $(val).height();
    // or $(val).height(100) etc.
});
 

Ответ №2:

Я бы предложил немного изменить ваш код, добавив новый класс.

 <div class="bg bg1"></div>
<div class="bg bg2"></div>
<div class="bg bg3"></div>
 

затем вы можете отказаться от использования jquery проще.

 var dom = document.getElementsByClassName('bg'), height = '50';

for( var x = 0; x < dom.length; x   ){
    dom[0].style.height = height;
}