向上遍历 dom 从具有 id 和 class 的单击元素获取
Traversing up the dom getting the from a clicked element with id and class
我找到了有关遍历 dom 从单击的元素获取节点的重要信息...
Traversing up the DOM getting the node from a clicked element
谁能帮我在面包屑中加入 id= 和 class= 属性,就像您在大多数 bugger 中看到的那样?
所以而不是:
HTML > BODY > UL > LI > SPAN
我愿意:
HTML > BODY > UL.menu > LI > SPAN#whatever
...或类似的东西。
添加到 linked code,下面的代码将在元素上附加所有 ID 和 类。
单击一个元素<div id="id1" class="class1 class2">Test</div>
...
会输出 HTML > BODY > DIV#id1.class1.class2
function clickHandler(event) {
var target = event.target,
breadcrumb = [];
while (target) {
var id = target.id;
var classes = target.className;
var crumb = target.tagName;
if (id) {
crumb += "#" + id;
}
if (classes) {
var classList = classes.split(' ');
for (var c = 0; c < classList.length; c++) {
crumb += "." + classList[c];
}
}
breadcrumb.unshift(crumb);
target = target.parentElement;
}
console.log(breadcrumb.join(" > "));
}
document.addEventListener('click', clickHandler, false);
我找到了有关遍历 dom 从单击的元素获取节点的重要信息...
Traversing up the DOM getting the node from a clicked element
谁能帮我在面包屑中加入 id= 和 class= 属性,就像您在大多数 bugger 中看到的那样?
所以而不是:
HTML > BODY > UL > LI > SPAN
我愿意:
HTML > BODY > UL.menu > LI > SPAN#whatever
...或类似的东西。
添加到 linked code,下面的代码将在元素上附加所有 ID 和 类。
单击一个元素<div id="id1" class="class1 class2">Test</div>
...
会输出 HTML > BODY > DIV#id1.class1.class2
function clickHandler(event) {
var target = event.target,
breadcrumb = [];
while (target) {
var id = target.id;
var classes = target.className;
var crumb = target.tagName;
if (id) {
crumb += "#" + id;
}
if (classes) {
var classList = classes.split(' ');
for (var c = 0; c < classList.length; c++) {
crumb += "." + classList[c];
}
}
breadcrumb.unshift(crumb);
target = target.parentElement;
}
console.log(breadcrumb.join(" > "));
}
document.addEventListener('click', clickHandler, false);