为什么jQuery.height()适用于id,但不适用于类?

时间:2011-12-20 10:59:59

标签: javascript jquery

例如,我有20个项目所有相同的高度,所有相同的类“some_class”。 二十的第一项具有id“first_item”。

当我$('.some_class').height();时,我得到0(这是错误的)。但是当我做$('#first_item').height();它有效时我会得到一个值。

这令我感到困惑。为什么会这样?我无法真正共享网页,因为它是一个私人页面。

编辑:有趣的是注意.width()工作正常,我得到相同的值,在#first_item或'.some_class'上调用它。

2 个答案:

答案 0 :(得分:3)

因为您可能会发现类选择器返回多个元素。在这种情况下,height()返回第一个元素的值(这在整个jQuery get方法中是一致的);这可能不是你想要的那个。

如果你想要每个元素的高度,你应该用它们迭代它们;

$('.some_class').each(function () {
    var myHeight = $(this).height();
});

jQuery height docs;

  

获取匹配元素集中第一个元素的当前计算高度。

答案 1 :(得分:1)

$('.some_class:eq(0)').height();应该为您提供正确的输出。

这是一个基本的html / css内容,你需要了解。

'class'定义特定类型的元素。将使用与该类关联的样式定义类的描述。因此,class用于为同一类型的多个元素提供样式。例如,您提到的20个项目具有相同的类别。 (他们不能拥有相同的身份)。

'id'是HTML元素的唯一标识。不能有多个具有相同“id”的元素。因此,'id'用于为一个uniqe元素提供样式。 类'myClass'和id'myId'的写作方式如下所示。