Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Доступ к родительскому элементу по дочернему (https://javascript.ru/forum/jquery/30051-dostup-k-roditelskomu-ehlementu-po-dochernemu.html)

Кирюха =) 22.07.2012 15:26

Доступ к родительскому элементу по дочернему
 
Всем привет. И сразу задачка! Условия: есть несколько div'ов - "родителей" с классом parent, в них бог весть что, но в одном из них есть div с классом children. Как при помощи jQuery получить доступ к этому родителю?
вот для наглядности:
<div class="parent">
</div>

<div class="parent">
    <div id="children">
    </div>
</div>

<div class="parent">
</div>

Гугл ни в какую не хочет подсказывать, прошу помогите а то я убьюсь опасной бритвой
P.S хочу этому родителю display:none влепить....

Dim@ 22.07.2012 15:41

элемент.parentNode
<div id="la">
 <div id="lol">g</div>
</div>
<script>
lol = document.getElementById("lol");
alert(lol.parentNode + " " + lol.parentNode.id)
</script>

Deff 22.07.2012 15:47

<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<style type="text/css">
div {
  padding:12px;
  margin:4px;
  min-width:30px;
  max-width:66px;
  border:2px solid red;
}
#children {
  border:2px solid blue;
}
</style>

<div class="parent">
1
</div>

<div class="parent">2
    <div id="children">
    </div>
</div>

<div class="parent">3
</div>

<script type="text/javascript">
var Hide=$("#children").parent("div.parent");
setTimeout('Hide.slideUp("slow")',3000)
</script>

Кирюха =) 22.07.2012 16:03

спасибо ребята, снова вы меня выручили

adm777 12.06.2018 13:57

Добрый всем.
Нуждаюсь в помощи.
Есть фильтр на сайте и кнопка сброса фильтров отображается постоянно "cf_resetAll_link",
Необходимо чтоб пока в фильтре нечего не выбрано скрывать кнопку сброса, хочу это привязать к ссылке выбора фильтров, при выборе фильтров к ссылке добавляется класс "cf_sel_opt". Помогите это реализовать.

<div class="filtr">
<a class="cf_resetAll_link" "href="#"><span class="cf_resetAll_label">Сбросить все фильтры</span></a>
<div class="cf_my_header">
<div>
<div class="cf_wrapper_inner">
<ul class="cf_filters_list">
<li><a href="#" class="cf_option cf_sel_opt">Кремы</a></li>
<li><a href="#" class="cf_option">Тонизирующие лосьоны</a></li>
</ul>		
</div>
</div>
</div>
</div>

рони 12.06.2018 15:05

adm777,
$(function() {
 var resetAll = $(".cf_resetAll_link").hide();
 $(".cf_option").on("click", function() {
    resetAll.toggle($(".cf_sel_opt").length)
});
	});

adm777 12.06.2018 16:01

Большое спасибо, отработало.
Скрылось, и при нажатии появляется на мгновение, пока загружаются результаты. А так понимаю он появляется по клику.? Может можно сделать чтоб когда при нажатии добавляется класс ".cf_sel_opt" добавлять класс к сбросу фильтров ".cf_resetAll_link-vis", чтоб было ".cf_resetAll_link .cf_resetAll_link-vis" и просто в css стилях прописать.

рони 12.06.2018 16:36

adm777,

$(function() {
 var resetAll = $(".cf_resetAll_link");
 $(".cf_option").on("click", function() {
    resetAll.toggleClass("cf_resetAll_link-vis", $(".cf_sel_opt").length)
});
	});

adm777 12.06.2018 16:59

Работает, но во время клика фильтр отрабатывает и перезагружает страницу, и класс "cf_resetAll_link-vis" очищает.
Проблема в том что при фильтрации перезагружает страницу, и чистит класс.
Спасибо.
Буду искать дальше.

рони 12.06.2018 17:23

adm777,
логика работы ваших страниц, известна только вам.


Часовой пояс GMT +3, время: 05:40.