Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2010, 11:46
Аспирант
Отправить личное сообщение для Viper Посмотреть профиль Найти все сообщения от Viper
 
Регистрация: 27.09.2008
Сообщений: 88

closest(). Как найти элемент в толпе?
Ломаю стену 3й час... Никак не могу понят одного...
Есть код:
<div class="parent">
	<div class="item">
		<div class="folder">
		<div class="result">&nbsp;</div>
		...
			<img ... />
			<a class="add"><img ... /></a>
		...
		</div>
	</div>
	<div class="item">
	...
</div>


и некий скрипт:
$("a#add").click(function(e){
	e.preventDefault();
	$.ajax({
		url: $(this).attr("href"),
		success: function(data) {
			$(this).closest(".result").text(data);
		}
	});
});


Почему в div.result не выводится текст?
Если указать жестко селектор, то выводится у первого div.result из списка(а их в списке n).
Ответить с цитированием
  #2 (permalink)  
Старый 17.08.2010, 11:50
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

.result не является родителем #add
Ответить с цитированием
  #3 (permalink)  
Старый 17.08.2010, 12:51
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

не $("a#add")
а 
$("a.add")

класс и id разные вещи
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2010, 13:57
Аспирант
Отправить личное сообщение для Viper Посмотреть профиль Найти все сообщения от Viper
 
Регистрация: 27.09.2008
Сообщений: 88

PeaceCoder опечатался в коде.

exec,
натолкнули на мыслю

$(this).closest("div").prev().fadeOut();
как-то так
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2010, 14:21
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

$("a#add").click(function(e){ 
    var that = $(e.target).closest('a');
    e.preventDefault(); 
    $.ajax({ 
        url: $(this).attr("href"), 
        success: function(data) { 
*!*
            //$(this).closest(".result").text(data);
*/!*
            $(that).closest(".result").text(data);
        } 
    }); 
});


А чем здесь является this, товарищи? Скорее всего XHR.
Ответить с цитированием
  #6 (permalink)  
Старый 17.08.2010, 15:35
Аспирант
Отправить личное сообщение для Viper Посмотреть профиль Найти все сообщения от Viper
 
Регистрация: 27.09.2008
Сообщений: 88

e1f да вы правы. часть $(that).closest(".result")... почему-то не сработала, а
$(that).closest("div").prev()... отработало как положено.
Ответить с цитированием
  #7 (permalink)  
Старый 17.08.2010, 15:42
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Тьфу, у вас разметка табами сбита, не увидел, что a не в result.
Не почему-то не сработала, а так и надо.
Ответить с цитированием
  #8 (permalink)  
Старый 22.11.2011, 13:27
Аватар для Андрей38
Профессор
Отправить личное сообщение для Андрей38 Посмотреть профиль Найти все сообщения от Андрей38
 
Регистрация: 11.12.2010
Сообщений: 261

Товарищи-Гуру.
Подскажите пожайлуста.Вопрос на счет поиска парента.
Аж 3 варианта для:

<div >
<div ><p><img id='Nam'></p></div>
</div>

1
$('img[id='Nam']').closest('div' )
2
$('img[id='Nam']').parent().parent('div' )
3
$('div:has(img[id='Nam])')
ЧТО найдет этот парент имиджа БЫСТРЕЕ?
так как ВСЕ работают ОДИНАКОВО
__________________
http://www.youtube.com/watch?feature...&v=cz0uN1ZNuM0
История не в теории ,а по факту

Последний раз редактировалось Андрей38, 22.11.2011 в 13:44.
Ответить с цитированием
  #9 (permalink)  
Старый 22.11.2011, 13:59
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Андрей38, предложу такой вариант...

<!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">
$(document).ready(function() {
*!*
	var o=$('#Nam').parents('div');
*/!*
	alert(o.get(0).className);
});
</script>
</head>
<body>
<div >
	<div class='test'>
		<p><img id='Nam'></p>
	</div>
</div>
</body>
</html>


Поскольку ты с атрибутами явно перемудрил...
Ответить с цитированием
  #10 (permalink)  
Старый 22.11.2011, 14:12
Аватар для Андрей38
Профессор
Отправить личное сообщение для Андрей38 Посмотреть профиль Найти все сообщения от Андрей38
 
Регистрация: 11.12.2010
Сообщений: 261

Спасибо КСА! Буду разбираться...
А ,кажеться этот ГЕТ тоже что и индекс?
А так_ на прямую_
$('div ').find('.test')
будет еще быстрее ?
__________________
http://www.youtube.com/watch?feature...&v=cz0uN1ZNuM0
История не в теории ,а по факту

Последний раз редактировалось Андрей38, 22.11.2011 в 14:17.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить элемент в XML через DOM используя PHP? bayah Серверные языки и технологии 6 11.08.2010 13:33
Как найти индекс по элементу в двумерном массиве? bayah Общие вопросы Javascript 5 22.04.2010 16:26
Как узнать содержит ли DOM определенный элемент Ruslan Events/DOM/Window 8 12.03.2010 22:02
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11