假设我们有以下标记:
<div class="hello">
<p>
<a href="#"><span id="start">Start</span></a>
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法找到$('#start')具有类属性的最接近的元素,在dom树上?
澄清:我实际上需要获取一个字符串,其中包含从$('#start')到$(.hello)的完整路径,它将包含所有元素的标记名称,直到基于上面的标记为止 - 它将输出: ' span ap .hello '
您可以使用获取元素标记名称 element.prop('tagName')
如果您想要最近的元素,包括您开始使用的元素,请使用.closest:
$('#start').closest('[class]');
Run Code Online (Sandbox Code Playgroud)
如果要排除起始元素,请使用:
$('#start').parents('[class]').first();
Run Code Online (Sandbox Code Playgroud)
要获得完整匹配路径,请尝试以下操作:
var path = [];
var el = document.getElementById('start');
while (el) {
if (el.className) {
path.push('.' + el.className);
break;
} else {
path.push(el.tagName);
}
el = el.parentNode;
}
var ancestors = path.join(' ');
Run Code Online (Sandbox Code Playgroud)
见http://jsfiddle.net/alnitak/EZWNR/
我使用原生JS,因为jQuery没有AFAIK提供一个简单的方法来选择一个元素及其每个祖先.
| 归档时间: |
|
| 查看次数: |
2502 次 |
| 最近记录: |