2017-08-28 50 views
0

Angularjs選擇我需要做類似的東西:與屬性

function keyupHandler(keyEvent){ 
    angular.element('div.keyFriendly[key='+keyEvent.key +']').click(); 
} 

但它不工作。我得到一個錯誤,如果我用angular.element(document.querySelector('div.keyFriendly[key='+keyEvent.key +']'))

enter image description here我可以做這樣的事情:

function keyupHandler(keyEvent){ 
    let mass = angular.element(document.querySelectorAll('div.keyFriendly')); 
    for(let i=0;i<mass.length;i++){ 
     if(mass[i].attributes.key.value==keyEvent.key) mass[i].click(); 
    } 
} 

這滿足了我的需求。但是我希望有一些辦法可以讓它變得更簡短,不是嗎?

+0

可以共享HTML?當你使用'Angular'時,使用'click()'似乎是反模式 – Satpal

+1

請顯示你的HTML ..'angular.element('div.keyFriendly [key ='+ keyEvent.key +']')會匹配一個元素:'

' – Stuart

+0

好吧,給我10分鐘 – RoGGeR

回答

0

問題是你沒有在字符串內分配屬性值。

你想要的是:

function keyupHandler(keyEvent){ 
    angular.element('div.keyFriendly[key="'+keyEvent.key +'"]').click(); 
} 
+0

不,問題在於OP試圖選擇一個Angular生成的DOM元素,以便觸發點擊,以便執行一個函數。這並不是Angular的工作方式。 –