prevAll隐藏元素

时间:2013-02-16 10:07:09

标签: jquery jquery-traversing

嗨我有一个隐藏的div,里面有其他divs

实施例

<div style="display:none">
    <div id="o-1">...<div>
    <div>...<div>
    <div>...<div>
    <div id="o-2">...<div>
    <div>...<div>
    <div>...<div>
    <div id="o-3">...<div>
    <div>...<div>
    <div>...<div>
   </div>

我试图获得div的id =“o-3”的prevAll,其中id开始于o- 在上面的例子中,o-3的prevAll是o-2和o-1

问题在于因为包装div被隐藏了所以我可以得到preAll

欢迎任何建议

3 个答案:

答案 0 :(得分:3)

问题不在于父设置为隐藏,元素仍在DOM中。

相反,一个问题是你的HTML有点搞砸了。您没有正确关闭<div>元素。

从你的代码:

<div>...<div>

应该是:

<div>...</div>

然后,您可以使用它来获取ID为以o-开头的先前兄弟姐妹:

$("#o-3").prevAll("[id^='o-']")

Live example

答案 1 :(得分:2)

我似乎没有选择隐藏元素的任何问题。

http://jsfiddle.net/U2YPB/2/

$.each($("#ho3").prevAll(),function(idx,div) {
    log($(div).attr("id"));
});

答案 2 :(得分:1)

试试这个

$('div:third').prevAll(':hidden');

或者你可以直接用户

$("#o-3").prevAll("div[id^='o-']");