Javascript 为什么jQuery.height()可以在id上工作,而不能在类上工作?

Javascript 为什么jQuery.height()可以在id上工作,而不能在类上工作?,javascript,jquery,Javascript,Jquery,例如,我有20件物品,都是同样的高度,都是同样的等级。 二十项中的第一项具有第一项的id 当我做$'.某个_类'.高度;我得到0,这是错误的。但当我做$'first_item'时,高度;它起作用了,我得到了一个值 这使我困惑。为什么会这样?我无法真正共享该网页,因为它是一个私人网页 编辑:值得注意的是.width工作得很好,我在第一个\u项或.some\u类上调用它时得到相同的值。,因为您可能会发现类选择器返回多个元素。在本例中,height返回第一个元素的值,这在jQuery get方法中是一

例如,我有20件物品,都是同样的高度,都是同样的等级。 二十项中的第一项具有第一项的id

当我做$'.某个_类'.高度;我得到0,这是错误的。但当我做$'first_item'时,高度;它起作用了,我得到了一个值

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


编辑:值得注意的是.width工作得很好,我在第一个\u项或.some\u类上调用它时得到相同的值。

,因为您可能会发现类选择器返回多个元素。在本例中,height返回第一个元素的值,这在jQuery get方法中是一致的;这可能不是你想要的

如果需要每个元素的高度,则应使用每个元素对其进行迭代

$('.some_class').each(function () {
    var myHeight = $(this).height();
});
获取匹配元素集中第一个元素的当前计算高度


因为您可能会发现类选择器返回多个元素。在本例中,height返回第一个元素的值,这在jQuery get方法中是一致的;这可能不是你想要的

如果需要每个元素的高度,则应使用每个元素对其进行迭代

$('.some_class').each(function () {
    var myHeight = $(this).height();
});
获取匹配元素集中第一个元素的当前计算高度

$'。某些类别:eq0'。高度;应该给你正确的输出

这是一个基本的html/css的东西,你需要理解

“类”定义元素的特定类型。将使用与该类关联的样式定义该类的描述。所以,类用于为相同类型的多个元素提供样式。例如,您提到的20个项目具有相同的类别。它们不能具有相同的id

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

$”。某些类别:eq0“。高度;应该给你正确的输出

这是一个基本的html/css的东西,你需要理解

“类”定义元素的特定类型。将使用与该类关联的样式定义该类的描述。所以,类用于为相同类型的多个元素提供样式。例如,您提到的20个项目具有相同的类别。它们不能具有相同的id

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

你必须发布一些html来获得一些帮助。对我来说效果很好:我假设你有另一个元素,它的类位于ID的类之前,这个元素的高度为0。是的,请看这个例子效果很好。。。在我的例子中,它应该可以很好地工作,但事实并非如此。你的例子和我的情况完全一样,只是我有80多个项目。我在其他项目中已经做过很多次了,但突然之间它就不起作用了。height将返回匹配元素集中第一个元素的高度。你确定按类选择时第一个元素是正确的吗?我刚刚检查了三次。第一个元素在元素检查器中的检测高度为178px。使用id选择器调用height效果很好,但是使用类选择器调用height返回0。您必须发布一些html以获得帮助。对我来说效果很好:我假设您有另一个元素,该类位于id选择器之前,该元素的高度为0。是的,请参见该示例。。。在我的例子中,它应该可以很好地工作,但事实并非如此。你的例子和我的情况完全一样,只是我有80多个项目。我在其他项目中已经做过很多次了,但突然之间它就不起作用了。height将返回匹配元素集中第一个元素的高度。你确定按类选择时第一个元素是正确的吗?我刚刚检查了三次。第一个元素在元素检查器中的检测高度为178px。使用id选择器调用height可以正常工作,但使用类选择器调用height返回0。该类的另一个元素可能位于id的元素之前,并且该元素的高度为0。这是真的。但是我的例子中的所有元素都是相同的高度,所以我应该得到一个非零值,但这并没有发生。我检查了三遍,第一件的高度是178。我没有得到这个值。我三次检查并反复尝试。这看起来像是代码的一种错觉。@trusktr:试着检查$。一些_类。首先看看哪个元素被匹配,哪个jQuery认为高度为零。它有一个ID try alert$'.some_class.first.attr'ID';,或者发短信来获取它的
内容等。可能有另一个元素具有该类,它位于ID为的元素之前,并且该元素的高度为0。这是真的。但是我的例子中的所有元素都是相同的高度,所以我应该得到一个非零值,但这并没有发生。我检查了三遍,第一件的高度是178。我没有得到这个值。我三次检查并反复尝试。这看起来像是代码的一种错觉。@trusktr:试着检查$。一些_类。首先看看哪个元素被匹配,哪个jQuery认为高度为零。它有一个ID try alert$'.some_class.first.attr'ID';,或者文本来获取其内容等。这应该无关紧要,因为eq0在执行时也是在内部完成的。高度虽然以不同的方式,但它可以归结为集合中的第一个元素。同样,因为它非常有趣:如果jQuery方法不返回标量值,它总是返回jQuery对象。从height docs:获取匹配元素集中第一个元素的当前计算高度。这不重要,因为在执行时eq0也是在内部执行的。height虽然以不同的方式执行,但可以归结为集合中的第一个元素。同样,因为它很有趣:如果jQuery方法不返回标量值,它总是返回jQuery对象。从高度文档:获取匹配元素集中第一个元素的当前计算高度。