As per my knowledge if we write code JQuery code inside $(document).ready() then the code will be executed after the DOM has fully rendered.
I'm trying to calculate the div height inside $(document).ready() but its returning zero height. But when I run the same code in browser's console it returns the correct height.
The content is loading via Angularjs.
JQuery:
$(document).ready(function (){
// hide view more button if user bio content is less than 200 words
var userBioLength = $('.userBioText > p').html().split(" ").length;
if( userBioLength<=200){
$('.userBioOverly').addClass("hide")
$('.viewMore').addClass("hide")
var textHeight = $(".userBioText").height();
console.log(textHeight); // return 0
$('.userBioWrapper').css({height:textHeight + 10+'px'});
}
HTML:
<div class="userBioWrapper">
<div class="userBioText">
<p>
{{userInfo.bio}}
Lorem ipsum dolor sit amet consectetur adipisicing elit. Id fugiat praesentium molestias aliquam quam cupiditate officiis eligendi dolor repellendus, recusandae voluptatem. Iste aliquam itaque rem tempore officia perspiciatis natus molestiae.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Id fugiat praesentium molestias aliquam quam cupiditate officiis eligendi dolor repellendus, recusandae voluptatem. Iste aliquam itaque rem tempore officia perspiciatis natus molestiae.
</p>
</div>
<div class="userBioOverly"></div>
</div>
I'm curious why this behavior is different. I'm I doing something wrong?