2016-10-10 3 views
0

То, что я пытаюсь выполнить, скрывает все сообщения потока активности от одного пользователя в фиде по его типу данных. Я в состоянии отличить пользователей после использования CSS с этой структуройКак скрыть элемент HTML на основе ряда родительских элементов

.joms-stream.joms-embedly--left.joms-js--stream > div > div > a > img[data-author="921"] { 
display: none !important; 

}

Как я в состоянии скрыть весь элемент потока с помощью ряда (this.parent) в JQuery или JavaScript? Заранее спасибо.

+0

Вы имеете в виду, если элемент удовлетворяет критериям выбора, скрыть верхний элемент? –

+0

Да, например .parent (img [data-author = "921"]). Parent (a) .parent (div) .parent (div) .style.display = "none" – Brigitte

ответ

0

Ваша проблема может быть решена с помощью .parents(selector).last() код:

Например:

$("img[data-author="921"]").parents(".joms-stream.joms-embedly--left.joms-js--stream") 
    .last().hide(); 

Этот код работает, потому что JQuery возвращает список родителей из .parent(selector) от в большинстве на большую, таким образом, используя .last(), выберем самый родительский.

Или, если вы уверены, что .joms-stream.joms-embedly--left.joms-js--stream не будет появляться дважды в гнезде (вы должны быть уверены, потому что вы используете > с, чтобы выбрать), вы можете использовать .closest(selector) метод, который будет выбрать ближайший матч из элемент:

$("img[data-author="921"]").closest(".joms-stream.joms-embedly--left.joms-js--stream") 
    .hide(); 

PS $(jqueryElem).hide() эквивалентен $(jQueryElem).style("display", "none") или elem.style.display = "none", потому что вы, кажется, совершенно новые для jQuery.

+0

Эй, можете ли вы обновить ответ на $ ("img [data-author = '921']") .closest (".joms-stream") .css ("display", "none"); Поэтому я могу наградить вас ответом :) Я просто попробовал, и это сработало вот так. – Brigitte

+0

@Brigitte done :) –

+1

Спасибо за отличное !!! – Brigitte

Смежные вопросы