1

如果我使用以下代码通过 id 访问任何元素。

$("#container_svg_John_0")

它将返回包含索引为“0”的元素的对象。即 [0] 的对象将包含该元素。我想知道在某些情况下找到其他元素会直接给出元素(即返回的 DOM 元素)。这些有什么区别。

如果正在访问它的 id,它将返回未定义。

$("#container_svg_John_0").id

但是当我像这样重写时

$("#container_svg_John_0")[0].id

它将返回元素的 id。每次都像上面那样访问。我如何访问在“0”位置仅包含单个元素而不是指定 [0] 的对象。以及在其他情况下有何不同?

4

4 回答 4

4

$("#container_svg_John_0")是一个 jQuery 对象,它确实具有id属性。

$("#container_svg_John_0")[0]返回具有id属性的 dom 元素。

所以基本上下面是true

$("#container_svg_John_0").attr('id') === $("#container_svg_John_0")[0].id
于 2013-04-26T09:25:02.593 回答
1

您没有正确使用 jquery 对象-正确的方法是:

$("#container_svg_John_0").attr('id');

这是 DOM 元素$("#container_svg_John_0")[0],因此调用有效

$("#container_svg_John_0")[0].id

于 2013-04-26T09:25:31.680 回答
0

如果要将 jquery 对象转换为 DOM 元素,可以执行以下操作

var dom_elem = $("#container_svg_John_0").get(0);

alert(dom_elem.id);

如果要访问 jQuery 对象的属性,请执行

$("#container_svg_John_0").attr('id')
//or
$("#container_svg_John_0").attr('class') //etc etc

但是您已经有container_svg_John_0内部$("#container_svg_John_0")选择器:D

于 2013-04-26T09:26:45.120 回答
0

$("#container_svg_John_0")是一个 jQuery 对象,因此您需要使用attr()它来获取它的 id ...

$("#container_svg_John_0").attr('id');

然而,

$("#container_svg_John_0")[0]返回 dom 对象,因此您需要使用它 [0].id来获取第一个元素的 id。

于 2013-04-26T09:27:06.033 回答