Массив в массиве
Здравствуйте. Простите заранее, если то что я щас напишу покажется Вам извращением. Другого пути реализации я не придумал, а навигация по 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, время: 07:37. |