我使用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
来电,但这对任何延迟时间都没有帮助。
任何人都可以帮助我为什么我总是零?
答案 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的高度属性。
如果它是动态内容,您必须在相应的事件中处理此事。
例如:
如果您正在使用@renakre所说的页面加载内容,请使用Set() had size 0 instead of expected size 4
或.height()
来触发此次通话。
如果它是由您编码的其他一些流程生成的内容,则必须绑定相应的事件..让我们假定它是点击或打开:
< / LI> 醇>
$(window).load()
&#13;
希望这可以帮到你。
答案 5 :(得分:0)
当没有为该元素设置显式高度/宽度或内部/外部元素的CSS将高度/宽度设置为0时,会发生这种情况;
要获得这样的高度/宽度,您必须明确设置高度/宽度。