#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;
}