1

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

例子

<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

欢迎任何建议

4

3 回答 3

3

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

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

从您的代码:

<div>...<div>

应该:

<div>...</div>

然后,您可以使用它来获取具有以开头的 id 的先前兄弟姐妹o-

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

活生生的例子

于 2013-02-16T10:19:33.387 回答
2

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

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

$.each($("#ho3").prevAll(),function(idx,div) {
    log($(div).attr("id"));
});
于 2013-02-16T10:13:15.120 回答
1

试试这个

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

或者您可以直接使用

$("#o-3").prevAll("div[id^='o-']");
于 2013-02-16T10:09:58.793 回答