2013-02-16 3 views
1

Привет У меня есть скрытый 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> 

Я пытаюсь получить возобладать из сНу ид = «о-3», который идентификатор начинается ти о- В приведенном выше примере возобладать о-3, о-2 и о-1

проблема заключается в том, что, поскольку оболочка DIV скрыт я могу получить preAll

есть sugges ЦИИ радушны

+0

Какой селектор вы пробовали? – Abhilash

+0

@Abhilash $ ("# o-3"). PrevAll ("div [id^= 'o-']"); – ntan

+0

.prevAll() работает для скрытых элементов. Что вы планируете делать с элементами? – Abhilash

ответ

2

Я, кажется, не имеют каких-либо проблем, выбирая скрытые элементы.

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

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

Try с этим

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

или вы можете непосредственно пользователем

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

Проблема заключается не в том, что родительский установлен быть скрыты, элемент по-прежнему в вашем DOM.

Вместо этого, одна проблема заключается в том, что ваш HTML немного испорчен. Вы не закрываете свои <div> элементы должным образом.

Из кода:

<div>...<div> 

Должно быть:

<div>...</div> 

Вы могли бы использовать это, чтобы получить предыдущие братья и сестры, что имеет идентификатор, который начинается с o-:

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

Live example

+0

+1 для тестирования кода, но проблема wan не html-кода, даже если я написал его неправильно (я создал фиктивный код и испортил его с помощью copy-paste). Спасибо за ваш ответ. Я был полезен (вызвать мой разум) – ntan

Смежные вопросы