2013-04-26 207 views
1

如果我使用下面的代碼通過id訪問任何元素。DOM元素和jQuery對象

$("#container_svg_John_0") 

它將返回包含索引爲「0」的元素的對象。那是[0]的對象將包含該元素。我想知道在某些情況下,查找其他元素將直接給元素(即返回的DOM元素)。那些之間有什麼區別。

如果我正在訪問它的id,它將返回undefined。

$("#container_svg_John_0").id 

但是當我重寫這個喜歡

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

它將返回元素的ID。每次訪問像上面那樣。我如何訪問只包含單個元素在第0位而不是指定[0]的對象。以及在其他情況下它有何不同?

回答

4

$("#container_svg_John_0")是一個jQuery對象,它具有id屬性。

$("#container_svg_John_0")[0]返回dom元素,它具有id屬性。

所以基本上下面是true

$("#container_svg_John_0").attr('id') === $("#container_svg_John_0")[0].id 
1

你沒有正確使用jQuery對象 - 正確的方法是:

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

這是DOM元素$("#container_svg_John_0")[0]所以它是有效的調用

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

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

0

$("#container_svg_John_0")是一個jQuery對象,所以你需要使用attr()獲得其ID ...

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

的地方,

$("#container_svg_John_0")[0]返回DOM對象,因此你需要使用[0].id獲得第一個元素的ID。