2017-02-10 140 views
0

我分配了ID的元素的Id在angularjs一個變量像下面獲取值的元素的角度JS

var test = angular.element("#sqldiv"); 

我發送測試變量的函數,想用函數中元素的ID。我無法檢索id值。當我試圖提醒測試。它只是給[object,Object]作爲輸出。請讓我知道如何檢索元素的id值。即我想要的值爲"#sqldiv"

任何幫助,這是非常感謝。提前致謝。

+0

'test [0] .id',但請解釋您的用例。看起來你正在做的是非角色的方式 – devqon

+2

看起來你正在嘗試做一些可以做得更乾淨的事情 - 直接處理元素幾乎總是在Angular中做錯事。改爲使用數據綁定。 – LionC

回答

1

試試這個

test[0].id 

這會給你一個元素id

+0

雖然這是正確的,但我強烈建議不要在沒有告訴OP不要在Angular中傳遞DOM元素的情況下回答此問題,因爲它們似乎是新的。 – LionC

1

Angular的jQlite像jQuery一樣工作,但功能有一些限制,以確保良好的性能,以便您可以使用jQuery的方法$.fn.attr來做這樣的事情。

例如:

var elm = angular.element(document.getElementById("#sqldiv")); 

console.log(elm.attr('id')); 

註上angular.element它的選擇是有限的,所以你不能用這樣的ID查詢,你必須通過它自我jQlite像元素:angular.element(document.getElementById("#sqldiv"))angular.element(document.querySelector("#sqldiv"))

使用DOM與角注:,因爲它是被告知的意見,避免使用DOM數據綁定,angularjs都有自己的方式做到這一點,莫st活動不需要DOM操作,你應該創建一個指令來做這樣的事情,你有適當的方式來處理它。

+1

雖然這是正確的,但我強烈建議不要在沒有告訴OP不要在Angular中傳遞DOM元素的情況下回答此問題,因爲它們似乎對它不熟悉。 – LionC

+1

@LionC沒有禁止傳遞DOM元素,這取決於你想要做什麼我不知道他是在創建一個組件指令還是隻是試圖顯示一個文本變量。但是,你說得對,我應該添加一個關於這個的筆記,我會的。謝謝:{D –

+1

確實,有些情況下需要它。但是其中大部分已經被現有的結構化指令解決了,並且在有人對Angular新手詢​​問處理DOM元素時,我會說95%的情況,他們需要被告知不要這樣做:-) – LionC