JavaScript如何知道元素在DOM中的位置?

时间:2010-07-27 07:07:45

标签: javascript dom

我在jQuery中编写了一些代码,例如:

$(".middleContent").not(this).slideUp();

(这=当前活动的.middleContent元素)

我想知道JavaScript如何知道DOM中的元素索引。

我知道每个对象都是唯一的,但是如果你有一些具有相同类的元素,它们如何区分它们?它是在所有元素的树中做它的索引,比如一个程序在RAM中有一个地址?

3 个答案:

答案 0 :(得分:2)

每个dom元素都是一个独特的对象。 not对当前执行上下文(this)进行比较,以确保数组中的任何元素都不等于this

答案 1 :(得分:2)

我认为你低估了DOM元素 unique 的含义。它不仅是当前父元素中标识DOM元素的类,标记名称或索引。每个DOM元素内部都有一个唯一的标识符,您无法访问它。浏览器使用它来在内部组织DOM。您的页面中可能有数百个看似相同的<div class="middleContent" />元素,每个元素都有唯一的内部标识符。如果您将一个DOM元素与另一个DOM元素进行比较,浏览器将始终能够判断它是相同的元素还是一个看起来像它的元素。

this指的是一个特定的DOM元素,因此jQuery能够从一组看似相似的元素中过滤掉它。

答案 2 :(得分:1)

DOM中的元素只是对象本身,组织成树结构,因此它们具有同一级别的下一个和上一个兄弟,他们自己的子列表,父级。从这里你可以绕着树的结构走动并操纵它。

您可以使用索引表示法获取jQuery对象内的对象:

var caption = $('#caption');
var domElement = caption[0];

然后domElement将包含one of these