Javascript 如何在DOM中搜索下一个元素?

Javascript 如何在DOM中搜索下一个元素?,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我应该如何从给定元素开始搜索下一个元素(比如输入)(它们不是直接的下一个同级元素) 在下面的示例()中,我需要设置一个“categ”值,初始值为“prod” 我应该从“prod”中搜索下一个“输入”: $(“input.categ”).val(“cat”); $(“input.prod”).next(“input”).val(“dog”) 我需要这里的“狗”值 代码的问题是因为next()查找同级元素,而输入元素不是同级元素 要通过DOM遍历执行所需操作,您需要从.prod输入中获取最近

我应该如何从给定元素开始搜索下一个元素(比如输入)(它们不是直接的下一个同级元素)

在下面的示例()中,我需要设置一个“categ”值,初始值为“prod”

我应该从“prod”中搜索下一个“输入”:

$(“input.categ”).val(“cat”);
$(“input.prod”).next(“input”).val(“dog”)

  • 我需要这里的“狗”值
代码的问题是因为
next()
查找同级元素,而
输入
元素不是同级元素

要通过DOM遍历执行所需操作,您需要从
.prod
输入中获取最近的父级
li
,然后使用
next()
获取同级
li
,然后使用
find()
获取
.categ
输入,如下所示:

$(“input.categ”).val(“cat”);
$(“input.prod”).next('li').next('li').find(“input”).val(“dog”)

  • 我需要这里的“狗”值
代码的问题是因为
next()
查找同级元素,而
输入
元素不是同级元素

要通过DOM遍历执行所需操作,您需要从
.prod
输入中获取最近的父级
li
,然后使用
next()
获取同级
li
,然后使用
find()
获取
.categ
输入,如下所示:

$(“input.categ”).val(“cat”);
$(“input.prod”).next('li').next('li').find(“input”).val(“dog”)

  • 我需要这里的“狗”值
假设我不知道DOM结构,如果我从上到下阅读HTML,我只知道这是下一个“输入”…在不知道其结构的情况下,您无法遍历DOM-任何尝试都将纯粹是猜测。HTML的顺序是不相关的,您正在遍历DOM节点,这是一个树,因此需要根据需要向上/向下/侧向移动。您选择了与父级“li”匹配的“最近的”,而不是兄弟级。。。也许有一些类似的方法……这是给定HTML的唯一可行的解决方案。有一些方法可以选择同级元素,但它们与HTML无关,因为您的
输入
元素都没有同级元素,因此没有可选择的内容。我更新了OP,以便使示例更加清晰。。。这不是一个学习练习…假设我不知道DOM结构,我只知道如果我从上到下阅读HTML,这是下一个“输入”…你不能在不知道其结构的情况下遍历DOM-任何这样做的尝试都纯粹是猜测。HTML的顺序是不相关的,您正在遍历DOM节点,这是一个树,因此需要根据需要向上/向下/侧向移动。您选择了与父级“li”匹配的“最近的”,而不是兄弟级。。。也许有一些类似的方法……这是给定HTML的唯一可行的解决方案。有一些方法可以选择同级元素,但它们与HTML无关,因为您的
输入
元素都没有同级元素,因此没有可选择的内容。我更新了OP,以便使示例更加清晰。。。这不是一个学习练习。。。