2011-10-17 85 views
0

所以我不確定我的標題是否足夠清晰。我基本上有一個div保存爲Javascript對象,看起來像這樣:[div#field_30.checkbox_group]Javascript - 從Javascript對象中提取對象ID

field_30是我試圖在這裏提取的ID。做一些像object.id不能正常工作。有誰知道如何獲得ID?

注意:我保存了這樣的對象:var object = $(".workspace .selected");它將當前選定的div抓取到名爲workspace的對象中。對不起,這是一個菜鳥的錯誤,我似乎無法在任何地方找到任何東西。感謝您的幫助...

回答

2

var object = $(".workspace .selected");將返回一個jQuery包裝元素,它具有jQuery屬性和方法,而不是元素屬性和方法。這意味着任何的

object[0].id 
object.prop("id") 
object.attr("id") 

應該工作,但第一個選項應該是最好的性能。它獲取jQuery對象包含的第一個元素的id屬性,它是您的div。

+1

感謝您的支持。我確實需要它。 – gabaum10

0

你的對象實際上是一個jQuery對象,而不是一個dom對象。

使用DOM對象使用,

object[0].id 

或者使用,jQuery的,(因爲它已經存在)

object.prop('id'); 
0

在這種情況下,看起來像objectjQuery選擇的結果。要獲得實際的DOM對象,您需要使用[0]。然後你就可以訪問id財產

object[0].id 
0

我在這裏看不到一個完整的答案,所以我會提供我自己的。

如果你使用jQuery選擇器$(),那麼你會得到jQuery包裝集合,而不是一個單一的元素。

(我現在假設您正在使用jQuery 1.5.2,與StackOverflow現在使用的一樣。)

  • 通用解決方案,使id S按選擇返回的所有元素是:

    .map(function(){ return this.id; }) 
    

    當前頁面上運行$(".post-text").map(function(){ return this.id; })將返回類似:["", "", "", "", ""]

  • 要獲得的id由選擇器使用返回的第一個元素:

    .attr('id') 
    

    在當前頁面上運行$("div").attr('id')將返回"notify-container"

    由於jQuery 1.6你也可以在這裏使用.prop('id')

如果你知道,查詢將返回只有一個元素或者你只是想給定的選擇相匹配的第一個元素,然後用.attr這顯然是一個簡單的解決方案。