Javascript 在DOM中遍历以下轴
这是一个DOM片段Javascript 在DOM中遍历以下轴,javascript,dom,Javascript,Dom,这是一个DOM片段 <p class="target">1</ p> <p class="click"></ p> <table> <tr><td><p class="click"></p></td></tr> </table> <p class="target">2</p> 但是我找不到如何在DOM中遍历以下轴,可能除了xpa
<p class="target">1</ p>
<p class="click"></ p>
<table>
<tr><td><p class="click"></p></td></tr>
</table>
<p class="target">2</p>
但是我找不到如何在DOM中遍历以下轴,可能除了xpath,它不适用于所有浏览器
如果我不知道,那就太好了:)
编辑
我写这个问题不够正确。下面是更合适的代码。按下键后,单击
我想获取之后的第一个错误
<input class="click" type="button" value="1">
<p class="error"></ p>
<table>
<tr><td><input class="click" type="button" value="2"></td></tr>
</table>
<p class="error"></p>
通过最初检索所有p
s,您可以检查集合中已单击元素(this
)的.index
)。然后,访问p
集合中的index+1
:
const$ps=$('p');
$(“p.click”)。单击(函数(){
const thisPIndex=$ps.index(本);
log($($ps[thisPIndex+1]).text());
});代码>
1
单击
2
假设每个
都有.error
。单击,我们可以:
- 收听任何
上的单击。单击
- 查找单击的
。单击与所有相关的
索引号。单击文档上的
- 然后使用该索引号在文档上的
.error
中查找等效索引号
演示
演示中评论的详细信息
/*
-在文档上注册单击事件
-任何。单击将为$(此)
-获取已单击按钮相对于的索引号
全部。单击文档。
-使用相同的索引号查找关联的.error
*/
$(文档).on('click','click',函数(e){
var idx=$(this).index('.click');
$('.error').eq(idx.show();
});代码>
。错误{
显示:无
}
错误1
错误2
漂亮的方法+1.但是如果单击
和目标
是不同的元素-f.e.按钮和p呢?如果单击的元素不是
,那么您将如何确定它与哪个
关联?你在寻找什么样的逻辑?如果它是一个后代,你可以使用.querySelector
,如果它是一个祖先,你可以使用.closest
Realy现在它是一个很大的形式,输入被放在表、div等中。但在任何元素或元素组之后,p.error被放置以显示结果。在大多数情况下,它们是输入后的下一个元素,但有时,如果没有看到HTML和了解所需的行为,很难说看到编辑,您可以为HTML中的所有元素创建一个集合,然后在这个大集合中检查单击的元素的索引虽然它简化了代码,但在实际任务中,一个错误可能会有一些点击+无论如何,这是假设一对一。如果有多个。单击获取单个。error
,那么匹配数据-*
属性值的简单系统就可以了。我从未想过DOM是元素的有序数组。由于答案,我使用了这种方法并找到了快速解决方案。再次感谢大家
<input class="click" type="button" value="1">
<p class="error"></ p>
<table>
<tr><td><input class="click" type="button" value="2"></td></tr>
</table>
<p class="error"></p>
$ ("p.click").click(function () {
target = $(this).nextAll("p.target").first() // following-->nextAll
});