jQuery:找到以前的div

时间:2010-02-24 17:34:03

标签: jquery

<div class="a" style="display:none">Content 1</div>
<div class="a" style="display:none">Content 2</div>

some other HTML...

<span id="b">foobar</span>

如何匹配span id =“b”上方的第一个div class =“a”来显示()它? id =“b”是我之前唯一知道的事情。

4 个答案:

答案 0 :(得分:8)

像这样:

$('#b').prevAll('.a:first').show();

答案 1 :(得分:3)

$("#b").closest(".a").show();

试试。

答案 2 :(得分:0)

元素是否共享祖先?如果是这样,你可以将inkedmn和SLaks的答案结合起来:

$('#b').closest('parentType').prevAll('.a:first').show();

或类似的东西,取决于您的DOM。

答案 3 :(得分:0)

只要我正确理解多个选择器,这应该有效。它将获得所有具有类'a'的div和具有id'b'的span。根据{{​​3}},它们将按文档顺序排列。然后,您需要在span标记之前获取div并显示它。

var elems = $('span#b, div.a');
var divIndex;
for (var i = 0; i < elems.length; i++)
{
    if (elems[i].tagName == "SPAN")
    {
        divIndex = i - 1;
        break;
    }
}

$(elems[divIndex]).show();