【发布时间】:2015-07-05 08:42:36
【问题描述】:
场景
我正在研究现有的网络实施。我正在添加一些逻辑客户端来跟踪用户体验。
约束
不幸的是,当前的实现缺少一些有用的 Id 属性。我不允许插入它们,也不允许修改现有的 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的次数? -
是的,可用选项之一
标签: javascript dom css-selectors