web-dev-qa-db-ja.com

jqueryはクラスを持つ次の要素を見つける

「エラー」のクラスを持つ次の要素を見つけようとし、壁にぶつかります。

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、または問題の要素の後のものを見つけようとしています。

無効なボタンの行に「このボタンは上書きできません」と表示されるはずです

私はもう試した

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

無駄に。

40
Loony2nz

問題は、 nextAll ではなく、次のトラバース機能を使用していることです

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

Nextを使用すると、「next」要素だけが表示されます。

<span>no overwrite</span>

次にすべては、次のすべての兄弟を見ます

69
PetersenDidIt

これを試して:

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

それが役に立てば幸い。シナン.

5
Sinan

next()は、機能するために兄弟である必要があるため、この場合は機能しません。この場合、次のものが必要です。

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