jquery用class查找下一个元素

Loo*_*2nz 40 jquery dom traversal next

我正在尝试用一类"错误"找到下一个元素并撞墙.

在查看jQuery网站上的演示时,这应该可以,但不是.

$("button[disabled]").next().text("this button is disabled");

<div>
   <button disabled="disabled">First</button>
   <span>no overwrite</span>
   <span class="error"></span>
</div>

<div>
   <button>Second</button>
   <span></span>
</div>

<div>
   <button disabled="disabled">Third</button>
   <span>no overwrite</span>
   <span class="error"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试找到有问题的元素之后的span或div或其他内容,例如上面的按钮.

所以禁用的按钮行应该显示'没有覆盖此按钮被禁用'

我试过了

$("button[disabled]").next(".error").text("this button is disabled");

无济于事.

Pet*_*dIt 70

问题是你使用下一个遍历函数而不是nextAll

$("button[disabled]").nextAll(".error").text("this button is disabled");
Run Code Online (Sandbox Code Playgroud)

当你使用next时它只是查看"next"元素

<span>no overwrite</span>
Run Code Online (Sandbox Code Playgroud)

接下来,所有人都会看到下一个兄弟姐妹

  • 如果你有几个.error元素,你需要.nextAll(".error").first().有点违反直觉,但.next()仅适用于下一个物品,没有机会制造条件. (9认同)
  • 不知道为什么next = nextAll(“ &lt;​​class&gt;”)。first()。以及为什么将当前的下一个描述称为“ nextElement()”。这就是为什么解释自身的命名功能在编码中非常重要的原因!我什至无法理解有多少人被此纠正。 (2认同)

Sin*_*nan 5

试试这个:

$("button[disabled=disabled]").parent().find("span.error").text("this button is disabled");
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.思南.