0

我有 jquery: $(".item")

这给了我类项目的所有元素。

我需要从我从这个方法得到的数组中选择一个项目,然后找到这个之前的项目。

类似: $(".item").select("#3").prev() - 除了它应该工作:)

所以,假设我有项目清单:

<div id=1 class="item"></div>
<div id=2 class="item"></div>
<div class="somethingElse"></div>
<div id=3 class="item"></div>
<div id=4 class="item"></div>

我应该得到“ <div id=2></div>”项目。

有任何想法吗?

4

2 回答 2

3

prev只查看前一个兄弟姐妹。试试这个:

$('#3').prevAll('div.item').eq(0);

那应该得到你想要的。正如 googletorp 所提到的,doing$('.item').find('#3');是多余的,而且速度较慢。ID应该是唯一的,所以你应该可以$('#3')直接做。但是请注意,根据规范,ID不应该以数字开头

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_") , 冒号 (":") 和句点 (".")。

于 2009-07-03T23:38:15.093 回答
1

你不写你得到的只是你所期望的。实际上,您的代码应该得到的是带有 somethingElse 类的 div。要得到我 2 你会做的。

$(....).prev(".item");

没有参数,prev 将在 DOM 中获取之前的元素,无论样式或类型。

你所做的几乎等于

$("#3").prev()

只会更慢。除非您使用 end() 否则第一个选择无效,但无论如何在通过 id 获取对象时都不需要。

于 2009-07-03T23:12:21.650 回答