Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выбрать элементы, в которые вложен элемент с id. (https://javascript.ru/forum/jquery/33461-vybrat-ehlementy-v-kotorye-vlozhen-ehlement-s-id.html)

Вадимчег 24.11.2012 04:29

Выбрать элементы, в которые вложен элемент с id.
 
Допустим, пусть будет что-то такое:

<div id='rss'>
<ul>
<li id='d1'><div id='h1'></div></li>
<li id='d2'><div id='h2'></div></li>
<li id='d3'><div id='h1'></div></li>
<li id='d4'><div id='h1'></div></li>
<li id='d5'><div id='h3'></div></li>
</ul>
</div>


Так вот.
Нужно удалить элементы <li>(со всем содержимым), внутри которых есть элемент <div> с id=h1

Пробовал так:

gid='h1';

id = $('div#rss_list li div[id='+gid+']').parent().remove(); - Не сработало
id = $('div#rss_list li div#'+gid).parent().remove(); - Отказалось выполняться.
id = $('div#rss_list li div#'+gid).remove(); - Удалило div элементы.
id2 = $('div#rss_list li div#'+gid).remove(); - Отказалось исполнять.
id2 = $('div#rss_list li div#'+gid).prev().remove(); - Отказалось.
id2 = $('div#rss_list li div#'+gid).().remove();

Чисто по логике разберу пример, который должен был сработать:
id = $('div#rss_list li div[id='+gid+']').parent().remove();
1) Выбираем элемент div c id = rss.
2) В найденном элементе нахожу элементы li.
3) А в них нахожу элементы div c id=gid
4) У всех найденных элементов найду прямого родителя ( это должен быть <li> )
5) Удалю всех родителей найденных элементов <div>

Что я делаю не так? :)

Заранее спасибо
Вадим

danik.js 24.11.2012 05:15

Цитата:

Сообщение от Вадимчег (Сообщение 217549)

Что я делаю не так? :)

http://htmlbook.ru/html/attr/id

danik.js 24.11.2012 05:35

Но если уж очень хочется, то...
<div id='rss'>
<ul>
<li id='d1'><div id='h1'></div></li>
<li id='d2'><div id='h2'></div></li>
<li id='d3'><div id='h1'></div></li>
<li id='d4'><div id='h1'></div></li>
<li id='d5'><div id='h3'></div></li>
</ul>
</div>
<script>
     var goodbye = [1, 3];
     var items = $('#rss div');
     items.each(function(){
         var id = Number(this.id.substring(1));
         if (goodbye.indexOf(id) >= 0)
             $(this.parentNode).remove();
     });
</script>

bot87 24.11.2012 10:38

атрибут Id уникален!То4ка.Если так хочется замените на класс или атрибут data.


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