2012-11-21 49 views
0

我有一個包含多個DIV的頁面,每個DIV包含一個下拉列表(DDL)。我想讓ID返回指定DIV的位置,在那裏我更改了DDL的值。特定DIV的Id如果點擊

function ChangeValueInDropDownList(ddl) { 
    var id = $(".divClass").attr("id"); 
} 
+2

杜佩的搜索功能:http://stackoverflow.com/search?q=%5Bjquery%5D+get+id+of+parent+element – PeeHaa

回答

2
function ChangeValueInDropDownList(ddl) { 
    var id = $(ddl).closest(".divClass").prop("id"); 
} 
+1

這是正確的答案。應該將'ddl'傳遞給jquery函數,而不是'this'。 'This' does not exist in'ChangeValueInDropDownList' – Johan

+0

謝謝你是我正在尋找的:-) – Istvan

+0

@Istvan歡迎您;) – VisioN

1

你說「每個DIV包含一個下拉列表」。那麼DIV是下拉列表的直接父母呢?如果是的話,那就試試這個

var id = $(this).parent().attr('id'); 
2

如果您選擇onchange事件處理程序是ChangeValueInDropDownList

$('select').on('change', ChangeValueInDropDownList); 

你應該試試這個,

function ChangeValueInDropDownList(e) { 
    var id = $(this).closest(".divClass").attr("id"); 
} 

,或者如果您在邊打電話ChangeValueInDropDownList選擇處理器,如

$('select').on('change', function(){ 
    var ddl = $(this); 
    ChangeValueInDropDownList(ddl); 
}); 

那麼它應該像

function ChangeValueInDropDownList(ddl) { 
    var id = ddl.closest(".divClass").attr("id"); 
} 
+0

在你第一個例子'ddl'應該重命名爲'e'作爲事件參數。在你的第二個例子中,'$(ddl)'不需要,因爲你已經傳遞了一個jQuery對象。 – VisioN

+0

@VisioN,是的,我糾正了這一點。 –