这为什么有效? Jquery,nextAll()

时间:2011-01-18 14:16:25

标签: jquery

http://pastebin.com/x8ruGQFK

如您所见,这是一个非常基本的一步一步“形式”。

这很有效,但为什么呢?

一开始我有3个div。然后我把它们隐藏起来。然后我在节目中设置第一个。

然后我点击下一步。

  1. var currentForm = $(".my-form-page:visible");我得到了第一个可见的div。
  2. currentForm.hide();我把它隐藏起来。是的,没错。所以一切都是隐藏的。
  3. currentForm.nextAll(".my-form-page:first").show(); nextAll,会将一些css应用到它之后的所有元素,但由于我有伪类:first,它不会。就在第一个。
  4. 但是,因为第一次仅适用于可见元素,所以它不应该起作用。为什么这件事知道,第二个元素,也是隐藏的,现在是第一个?为什么我可以这样访问它?

1 个答案:

答案 0 :(得分:2)

:first不仅适用于可见元素。它相当于:eq(0)。如果您希望它仅应用于可见元素,则需要再次包含:visible选择器:

currentForm.nextAll(".my-form-page:visible:first").show();