0
我的工作在現有的網絡實現。我正在添加一些邏輯客戶端來跟蹤用戶體驗。
約束
不幸的是,目前的實施缺乏一些有用的標識屬性。我不允許插入他們,我不允許修改現有的DOM結構
方法
所以,我必須給Javascript DOM遍歷方法上幾乎沒有利用:
var gameLink = eventSource.parentNode.parentNode.querySelector('a.arrow-label');
對於設計的緣故我將所有我可以在配置JSON對象。所以,我可以從分開的實現邏輯的任何改變的:
gt.conf = {
pages: {
'homepage':'Home page'
,'help':'Supporto utente'
}
, user: {
'loggedIn':'autenticato'
'registered':'registrato'
}
};
現在我很樂意加入的配置對象的選擇:
gt.conf = {
/* ... */
, selectors: {
'gameLink':'a.arrow-label'
}
}
這樣:
var gameLink = eventSource.parentNode.parentNode.querySelector(gt.conf.selectors.gameLink);
但我也會在配置中存儲我的代碼中的(可怕的)parentNode
鏈。
問題
有沒有什麼辦法來存儲「parentNode」鏈作爲一個字符串,並用它來執行DOM遍歷?
也許你可以只存儲你必須申請'parentNode'次數? –
是的,可用選項之一 –