Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在DOM中遍历以下轴_Javascript_Dom - Fatal编程技术网

Javascript 在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

这是一个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中遍历以下轴,可能除了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
});