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'次数? –
是的,可用选项之一 –