Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2011, 17:42   #1
AlienNation
Пользователь
 
Регистрация: 22.08.2010
Сообщений: 85
По умолчанию JQuery селектор, Как выбрать конкретный wrapper для блока?

как добраться к элементу класса B, кликая по элементу класса А через wrapper li? Объясняю! Дан элемент списка li, в котором находятся 2 блока (не важно, кнопки это или дивы, что угодно может быть), допустим 1-ый блок имеет класс А, 2-й класс B, единственное что их объединяет это wrapper li, какой селектор в данном случае можно применить?

Код:
<ul>
 <li>
  <div class="A">1</div>
  <div class="B">2</div>
 </li>
</ul>
! обычной селекцией тут наврядли поможешь, так как классы А и B могут находится где угодно и как угодно, могут быть еще в контейнерах, неогранниченой вложенности, т.е. выход только 1, через обвертывающий их wrapper li

это должно быть примерно так:

Код:
$('.A').click(function(){
 var m =  find(A wrapper = li).attr("id"); // вот тут нужна точность и далее уже легко
  $('#id').find('.B').append("Hellow World!"); // по найденому ид-шнику тега li
 });
AlienNation вне форума Ответить с цитированием
Старый 22.09.2011, 17:53   #2
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

коли количество блоков класса A = кол-ву блоков класса B то можно воспользоваться банальным индексом

Код:
$('.A').click(function(){
var indexx = $('.A').index(this);
$('.B').eq(indexx).text('я тут');
});
полный код
Код HTML:
<html>
<head>
<script language="JavaScript" src="http://jqbook.narod.ru/page/primer/jquery-1.2.6.js"></script>
<script>
onload=function(){
$('.A').click(function(){
var indexx = $('.A').index(this);
$('.B').eq(indexx).text('я тут');
});
}
</script>
</head>
<body>
<ul>
 <li>
  <div class="A">1</div>
  <div class="B">2</div>
 </li>
</ul>
<ul>
 <li>
  <div class="A">1</div>
  <div class="B">2</div>
 </li>
</ul>

Последний раз редактировалось Lesha; 22.09.2011 в 17:57.
Lesha вне форума Ответить с цитированием
Старый 22.09.2011, 17:57   #3
AlienNation
Пользователь
 
Регистрация: 22.08.2010
Сообщений: 85
По умолчанию

Цитата:
Сообщение от Lesha Посмотреть сообщение
можно воспользоваться банальным индексом
банальный индекс тут наврядли прокатит, потом будет много возни если какой-то блок добавится/убавится, я уже проходил через это.
AlienNation вне форума Ответить с цитированием
Старый 22.09.2011, 18:01   #4
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

"банальный индекс v2.0"

Код HTML:
<html>
<head>
<script language="JavaScript" src="http://jqbook.narod.ru/page/primer/jquery-1.2.6.js"></script>
<script>
onload=function(){
$('ul li div.A').click(function(){
var indexx = $('ul li div.A').index(this);
$('ul li div.B').eq(indexx).text('я тут');
});
}
</script>
<div class="A">1</div>
<div class="A">1</div>
<div class="A">1</div>
<div class="B">2</div>
<ul>
 <li>
  <div class="A">нажми меня</div>
  <div class="B">2</div>
 </li>
</ul>
<div class="A">1</div>
<div class="A">1</div>
<div class="A">1</div>
<div class="B">2</div>
<ul>
 <li>
  <div class="A">нажми меня</div>
  <div class="B">2</div>
 </li>
</ul>
<div class="A">1</div>
<div class="A">1</div>
<div class="A">1</div>
<div class="B">2</div>
Lesha вне форума Ответить с цитированием
Старый 22.09.2011, 18:17   #5
AlienNation
Пользователь
 
Регистрация: 22.08.2010
Сообщений: 85
По умолчанию

спасибо, пока работает!
AlienNation вне форума Ответить с цитированием
Старый 22.09.2011, 19:09   #6
AlienNation
Пользователь
 
Регистрация: 22.08.2010
Сообщений: 85
По умолчанию

кстати, а чем это

Цитата:
$('.A').click(funciton () {
$(this).closest('li').find('.B').ap pend('Hellow World!')
});
хуже? (ответили на другом форуме, может есть разница?)
AlienNation вне форума Ответить с цитированием
Старый 23.09.2011, 15:44   #7
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от AlienNation Посмотреть сообщение
кстати, а чем это хуже? (ответили на другом форуме, может есть разница?)
Это лучше, так как идем от активного элемента вверх по дом и внутри родителя уже ищем нужный селектор. Работает быстрее, чем перебор всего массива классов и вероятность появления ошибки стремится к нулю.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 23.09.2011, 17:56   #8
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

для JS понятие быстроты или небыстроты отсутствует вовсе (за исключением бесконечных циклов), ввиду того что его обрабатывает не сервер а клиент, а поскольку у клиента свой процессор то тут очень огромный потенциал для "загрузки".
Lesha вне форума Ответить с цитированием
Старый 26.09.2011, 08:53   #9
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Lesha Посмотреть сообщение
для JS понятие быстроты или небыстроты отсутствует вовсе (за исключением бесконечных циклов), ввиду того что его обрабатывает не сервер а клиент, а поскольку у клиента свой процессор то тут очень огромный потенциал для "загрузки".
В том то и дело, что это не серверный скрипт и вы не знаете, какой потенциал для "загрузки" у клиента. Купите подержанный компьютер за 500 рублей и проверьте на нем, на ie6/7. Оперативная память забивается быстро, при обилии скриптов это критично - повесить клиентский компьютер крайне легко и крайне неприятно для посетителя - после такого люди отключают нахрен js.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 26.09.2011, 10:29   #10
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

Цитата:
ie6/7 , повесить клиентский компьютер крайне легко
зачем же в такие крайности бросаться?
Lesha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выбрать оптимальный формат для графического файла? artemavd Общие вопросы Delphi 11 03.12.2010 03:39
JS or jQuery: Выбрать все тэги с одним классом InCun JavaScript, Ajax 1 21.02.2010 14:01
Как определить время выполнения конкретный функции? Alex Cones Общие вопросы Delphi 8 24.09.2009 11:42
как получить конкретный объект DOM из нескольких одинаковых Doda JavaScript, Ajax 3 18.05.2009 13:25