【问题标题】:jquery find next element with classjquery用类查找下一个元素
【发布时间】:2010-12-20 02:52:02
【问题描述】:

我正在尝试查找具有“错误”类的下一个元素并碰壁。

查看 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>

我正在尝试在相关元素之后找到 span 或 div 或其他任何内容,例如上面的按钮。

所以禁用的按钮行应该是,'no overwrite this button is diabled'

我试过了

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

无济于事。

【问题讨论】:

  • 当你说它不起作用时,你的意思是文字说“这个按钮被禁用”,而实际上应该说“不覆盖这个按钮被禁用”?
  • @Robert:很抱歉造成混乱。我的意思是在禁用按钮的右侧,应该有文字,“此按钮已禁用”。不是实际的按钮文本。

标签: jquery dom traversal next


【解决方案1】:

试试这个:

$("button[disabled=disabled]").parent().find("span.error").text("this button is disabled");

希望对您有所帮助。 思南。

【讨论】:

  • @Sinan:不。什么都没发生。 $("button[disabled=disabled]").parent().find("span.error").text("这个按钮被禁用");
    - 不覆盖
    - 没有覆盖
    将其插入您的浏览器,看看它是否适合您。应更新 span class='error' 的禁用按钮。
【解决方案2】:

next() 在这种情况下不起作用,因为它必须是兄弟才能起作用。在这种情况下,您需要:

$("button[disabled]").parent().nextAll()
  .find("span.error:first").text("this button is disabled");

【讨论】:

  • 或者你总是可以做 .next().next()
  • 这种方法有效。我只得到第二个带有错误类的跨度标签,以更新它的内容。
【解决方案3】:

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

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

当您使用 next 时,它只是查看“下一个”元素,即

<span>no overwrite</span>

Next all 查看所有下一个兄弟姐妹

【讨论】:

  • 如果您有多个 .error 元素,则需要 .nextAll(".error").first()。有点反直觉,但是 .next() 只针对物理上的下一项,没有机会做条件。
  • 不知道为什么不能 next = nextAll("").first()。以及为什么当前对 next 的描述被称为“nextElement()”。这就是为什么命名能解释自身的函数在编码中极其重要的原因!我什至无法理解有多少人因此而得到纠正..
  • 换句话说:.nextAll()首先通过选择器过滤,然后在该集合中寻找真正的下一个。 — .next 首先查找下一个,然后过滤掉下一个。后者可能对处理 sometimes - 尾随 &lt;hr&gt;s 或类似... 很有用
猜你喜欢
  • 2011-07-09
  • 2011-04-09
  • 2016-01-19
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多