2012-03-15 3 views
0

Я хочу установить равную высоту в div, у которых есть имя класса «modelCode», поэтому я сделал небольшую функцию, чтобы сделать это, но когда я запускаю эту функцию, она устанавливает высоту 0px в стиле elemeny. До этого я использовал метод .height(), который работает, но я хочу с помощью метода высоты css любой догадываться. Заранее спасибоjquery css селектор высоты?

<head> 
    <script type="text/javascript"> 
    function equalHeight(group) { 
     var tallest = 0; 
     group.each(function() { 
      var thisHeight = $(this).css('height'); 
       if (thisHeight > tallest) { 
        tallest = thisHeight; 
       } 
     }); 
     group.css('height',tallest); 
    } 

    function setequalheight() { 
     equalHeight($(".modelCode")); 
    } 

    $(document).ready(function() { setequalheight() }); 
    </script> 
<style> 
    .modelCode { width:200px; float:left; border:solid 1px #F00} 
</style> 
</head> 
<body> 
    <div class="modelCode">i am new text </div> 
    <div class="modelCode">i am new text <br />i am new text <br />i am new text <br />i am new text <br /></div> 
+0

@DanielNWerner Что заставляет вас думать '.each()' работает async? – m90

+0

Это не так. Удалил мой комментарий, чтобы уменьшить плохую информацию. – dwerner

ответ

2

он теперь будет работать

function equalHeight(group) { 
var tallest = 0; 
group.each(function() { 
    var thisHeight = $(this).css('height'); 
    thisHeight = parseInt(thisHeight.substr(0 , (thisHeight.length - 2))); 
    //alert(thisHeight) 
    if (thisHeight > tallest) { 
     tallest = thisHeight; 
    } 


}); 

group.css('height',tallest); 
} 

проблема заключается в том, что .css ('высота') возвращает значение строки, так что вы необходимо проанализировать его на целое, чтобы сравнить значение, большее значение

+0

спасибо pal singh сейчас я понимаю, в чем разница между функцией высоты .hight() и css – Carlos

+0

, если это было правильно, я надеюсь, что вы не возражаете против ее маркировки как правильный ответ –

+0

да, я отмечаю его как правильные ан. – Carlos

0

При использовании css метода JQuery в вы должны предоставить всю стоимость. В этом случае вы предоставляете его с целым числом, когда действительно вы хотите дать ему целое число плюс «px». Это то же самое, что писать «height: 40» в css (если целое число равно 40).

Попробуйте изменить

group.css('height',tallest) 

в

group.css('height',tallest+"px"); 
+0

это не сработает, потому что значение самого высокого равно 0 все время –

Смежные вопросы