получить самый высокий div от основного div jquery - PullRequest
0 голосов
/ 16 сентября 2011

Я видел это и это , но я просто не могу заставить их работать.

У меня есть основной div со многими детьми с разными идентификаторами и классами внутри. Мне нужно найти способ получить высоту определенного класса и установить высоту следующих дивов в соответствии с ними. Я знаю, что это не работает, но это может помочь вам понять, чего я хотел бы достичь:

var placesHeight = 0;
$('.places').each(function(){
    if(height > 35 ) {
    $(this).next('.nextdiv').css('height','(placesHeight+25)+"px"');
});

РЕДАКТИРОВАТЬ: Спасибо за быструю помощь всем. Я попробовал все это и понял, что все, что мне нужно, это:

var placesHeight = $('.places').height();
$('.nextdiv').css('height', placesHeight+25);

Ответы [ 5 ]

1 голос
/ 16 сентября 2011

Надеюсь, это как-то поможет,

<script type="text/javascript" src="jquery-1.6.3.min.js"></script>
<script>
function test(){
    $("#my_div").children('.check_me').each(function(){
        alert( $(this).outerHeight());
    });
}
</script>
<style>
#my_div div{
    display:block;
    margin:5px;
    border:1pt solid #ccc;
}
</style>
<button onclick='test()'>try me</button>

<div id='my_div'>
    <div id='one_line' class='check_me'>
        first
    </div>
    <div id='two_lines'>
        first<br>second
    </div>
    <div id='three lines' class='check_me'>
        first<br>second<br>third
    </div>
<div>
1 голос
/ 16 сентября 2011

Вот ваша проблема:

.css('height','(placesHeight+25)+"px"');

Значение placeHeight не будет проанализировано - оно попытается установить значение высоты как (placesHeight+25)+"px". Это можно сделать проще:

.css('height', placesHeight+25);

"px" будет добавлен автоматически для вас.

1 голос
/ 16 сентября 2011

Попробуйте вместо этого

$(this).next('.nextdiv').height(placesHeight+25);
1 голос
/ 16 сентября 2011

Было бы полезно увидеть больше вашей разметки - лучше всего использовать jsfiddle. Что-то вроде этого может работать, хотя:

$('.places').each(function(){
    var $this = $(this),
        height = $(this).height();
    height > 35 && $this.next().height(height);
});
1 голос
/ 16 сентября 2011
var placesHeight = 0;
$('.places').each(function(){
    if($(this).height() > 35 ) {
    $(this).next('.nextdiv').css('height',$(this).height()+25+"px");
});

как то так?

...