找到div高度总是返回零jquery

时间:2015-04-14 01:39:54

标签: javascript jquery html css

我使用jquery来查找div的高度,但它总是返回零。我可以在chrome的inspect元素css窗口中清楚地看到div的高度。

<div class="findheight">some text here</div>//original height is 21px

但是,当我执行以下操作时,它返回零:

$('.findheight').height() //it always returns zero. really making me sick 

所以当我在上面调用高度方法时,我认为div可能没有文本,我确实喜欢下面的内容。

  if($('.findheight').text().length > 6){
      alert($('.findheight').height());//This also returns zero so weird 
 }

我也试过设置windows.timeout来电,但这对任何延迟时间都没有帮助。

任何人都可以帮助我为什么我总是零?

6 个答案:

答案 0 :(得分:0)

您是否将jquery包装在dom准备就绪时执行的函数中?

$(document).ready(function(){
  console.log($('.findheight').height());
});

它适用于我,否则您的错误可能是浏览器特定的。

这是一个工作的jsfiddle。只需检查您的控制台。 https://jsfiddle.net/lesshardtofind/vzxd4t57/

如果出于某种原因,您无法访问文档准备好的元素,例如在Meteor,Ember,React或Angular等动态模板化框架中工作,那么每个对象都有一个钩子来注册您的函数。

如果不是您试图访问转换之间的元素,则可以设置间隔。

var interval;
var timeout = setTimeout(function(){
  clearInterval(interval)
}, 10000); // destroy interval after 10 seconds to prevent memory leak
interval = setInterval(function(){
  if($('.findheight').length > 0){ 
    // execute your code here because you know this element is in the dom
    clearInterval(interval);
    clearTimeout(timeout);
    // clear both timeout and interval
  }
}, 100); // loop every 100 milliseconds to "poll" for the node in the dom

答案 1 :(得分:0)

如果你的div的内容是动态加载的,那么你需要使用window.load事件来获得正确的高度,如下所述:https://stackoverflow.com/a/13071846/1845408

$(window).load(function() {
    alert($('.findheight').height()); 
});

答案 2 :(得分:0)

将您的代码复制到jsfiddle,高度为18

<div class="findheight">some text here</div>//original height is 21px
alert($('.findheight').height());

答案 3 :(得分:0)

尝试这样做:

$('div.findheight').height(); 

答案 4 :(得分:0)

import akka._ import akka.actor._ import play.api.Logger import scala.language.implicitConversions object Sessions_Buffer { case class Sessions_Buffer_Data( data: scala.collection.immutable.Map[String, List[Array[Byte]]] ) // var sessions_buffer: Map[String, List[Array[Byte]]] = Map() def props(): Props = Props(Sessions_Buffer()) } case class Sessions_Buffer() extends Actor { import Sessions_Buffer._ def receive = active(Map()) def mergeMaps(m1: Map[String, List[Array[Byte]]], m2: Map[String, List[Array[Byte]]]) = for ((key, values) <- m2) yield { val existingData = m1.getOrElse(key, List()) (key -> (existingData ++ values)) } def active(dataFromKafka: Map[String, List[Array[Byte]]]): Receive = { case sessionData: Sessions_Buffer_Data => context.become(active(mergeMaps(dataFromKafka, sessionData.data))) for ((key, values) <- dataFromKafka) { Logger.debug("key = " + key + " values =" + values.size) } case "get_session_data" => sender() ! dataFromKafka } class Test_Kakfa_To_Buffer extends TestKit(ActorSystem("test-kafka-buffer")) with ImplicitSender with WordSpecLike with Matchers with BeforeAndAfterAll { var kafkaProps: Properties = _ override def beforeAll = { Play.start(TestUtils.FAKE_APP) kafkaProps = KafkaConfigService.securedDeviceKafkaProps } override def afterAll = { TestKit.shutdownActorSystem(system) Play.stop(TestUtils.FAKE_APP) } val buffer_Dispatcher = system.actorOf(Sessions_Buffer.props()) ... // some process here val futureSessionsData = buffer_Dispatcher ? "get_session_data" val sessionsData: Map[String, List[Array[Byte]]] = 正好取得了CSS的高度属性。

如果它是动态内容,您必须在相应的事件中处理此事。

例如:

  1. 如果您正在使用@renakre所说的页面加载内容,请使用Set() had size 0 instead of expected size 4 .height()来触发此次通话。

  2. 如果它是由您编码的其他一些流程生成的内容,则必须绑定相应的事件..让我们假定它是点击或打开:

    < / LI>

    &#13;
    &#13;
    $(window).load()
    &#13;
    &#13;
    &#13;

    希望这可以帮到你。

答案 5 :(得分:0)

当没有为该元素设置显式高度/宽度或内部/外部元素的CSS将高度/宽度设置为0时,会发生这种情况;

要获得这样的高度/宽度,您必须明确设置高度/宽度。