Массив в массиве
Здравствуйте. Простите заранее, если то что я щас напишу покажется Вам извращением. Другого пути реализации я не придумал, а навигация по DOM с такой разметкой - бессмысленна и беспощадна.
Разметка: <div class="q1"> <div class="w1"></div> <div class="w1"></div> <div class="w1"></div> <div class="w1"></div> </div> <div class="q2"> <div class="w2"> <div class="e1"> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> </div> <div class="e2"> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> </div> </div> <div class="w2"> <div class="e1"> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> </div> <div class="e2"> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> </div> </div> <div class="w2"> <div class="e1"> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> </div> <div class="e2"> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> </div> </div> <div class="w2"> <div class="e1"> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> </div> <div class="e2"> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> </div> </div> </div> Скрипт: $(document).ready(function(){ var q1 = (".q1 > w1"); var q2 = (".q2 > w2"); var e1 = (".e1 > r1"); var e2 = (".e2 > r2"); q2.hide(); e2.hide(); q1.click(function(){ var a = q1.index(this); q2.eq(a).show().siblings().hide(); // здесь по идее должен быть ответ на вопрос, но ни .eq(0) ни .filter(":first") мне не помогли. }); }); Уважаемые знатоки, внимание, вопрос: Каким образом мне вытащить первый элемент массива e2, который в свою очередь вытаскивается из массива q2, если ни eq() ни filter() не помогли? |
<div class="e2"> <div>this is first child</div> <div>this is last child</div> </div> <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> alert( $(".e2 div:first-child").html() ); </script> |
Цитата:
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function Go() { $('.q2 .e2 > div:first').css('color','red'); }; </script> </head> <body> <div class="q1"> <div class="w1"></div> <div class="w1"></div> <div class="w1"></div> <div class="w1"></div> </div> <div class="q2"> <div class="w2"> <div class="e1"> <div class="r1">1</div> <div class="r1">2</div> <div class="r1">3</div> <div class="r1">4</div> </div> <div class="e2"> <div class="r2">Test</div> <div class="r2">1</div> <div class="r2">2</div> <div class="r2">3</div> </div> </div> <div class="w2"> <div class="e1"> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> </div> <div class="e2"> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> </div> </div> <div class="w2"> <div class="e1"> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> </div> <div class="e2"> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> </div> </div> <div class="w2"> <div class="e1"> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> <div class="r1"></div> </div> <div class="e2"> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> <div class="r2"></div> </div> </div> </div> <input type='button' value='Go' onclick='Go()' /> </body> </html> |
ksa, ну ты то хоть не издевайся)
естественно должна быть возможность производить действие над любым из элементов массива... а их там и 50 может быть... эта разметка исключительно как пример. Подскажи, пожалуйста, статейку, где описаны способы работы с многомерными массивами посредством jQuery. |
ksa,
div:firstлучше не юзать псевдокласс first это не стандартный псевдокласс и jQuery запускает свой собственный поиск элементов, что затормаживает работу скрипта. Поэтому лучше юзать стандартный first-child он поддерживается querySelector и тем самым ускоряет процесс поиска. |
Цитата:
Я что прочитал... http://jquery-docs.ru/Selectors/ То и использую... :) |
Я когда сюда постил не подумал о существовании многомерных массивов.
Извините за флуд и уг. Все нашел, во всем разобрался. Спасибо. |
Цитата:
Цитата:
http://jquery-docs.ru/Selectors/ и оригинал http://api.jquery.com/category/selectors/ |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 13:17. |