2017-02-22 137 views
0

我试图选择嵌套的HTML元素与jQuery选择嵌套的DOM元素

<div id="myTabContent" class="tab-content"> 
    <div role="tabpanel" class="tab-pane fade in active" id="home"> 
    <div class="events_box"> 
     <div class="event_left"> 
     <div class="event_left-item"> 
      <div class="icon_2"> 
      <i class="fa fa-clock-o" id="programHoursId0"></i> 
      </div> 
      <div class="icon_2"> 
      <i class="fa fa-location-arrow" id="programLocationId0"></i> 
      </div> 

我有选择的类fa fa-clock-ofa fa-location-arrow。我可以通过ID选择它们,但我希望按类别选择它们。 我已经试过类似的组合:

$('div div div .fa fa-clock-o').css('visibility', 'hidden'); 

和:

$('.event_left .event_left-item .icon_2 .fa fa-clock-o').css('visibility', 'hidden'); 

和:

$('div.fa fa-clock-o').css('visibility', 'hidden'); 

随着更多....

的目标是隐藏那些FontAwesome图标。

+1

你缺少你选择'.fa-时钟O' –

+0

'$(”点元素FA- clock-o')。hide()' – j08691

回答

1

由于fafa-clock-o是你不能有选择或jQuery的(或类似querySelector任何替代)它们之间的空间会认为一个在相同的元素类是其他的后裔。试试这个:

$('.fa.fa-clock-o') 
// ^^^ 

div.fa fa-clock-o:寻找类型fa-clock-o(标签)的任何后代一个div具有类fa =>选择无关,因为没有标签fa-clock-o的。

div.fa .fa-clock-o:寻找与该类fa-clock-o是一个div的后裔与类fa =>将匹配你想要的任何元素。

.fa.fa-clock-o:寻找那些具有类fafa-clock-o =>匹配你想要的东西太

+0

应该是'$('i.fa.fa-clock-o')'或'$('div .fa.fa-clock-o')'。 'div'元素是父元素。 。 。 'i'元素上有“fa”类。 – talemyn

+0

也可以。 ;) – talemyn

+1

@talemyn是啊我在编辑你的评论时!在你编辑完代码和代码后,我注意到我有这个错误! –

0

请试试这个$('.fa').hide();

+1

哇快速响应! @artemisian .fa隐藏了所有以fa开头的元素。很好的猜测。我会接受@ibrahim mahrir提供的答案,因为他对fa和fa-clock-o是正确的分类。选择器是$('。fa-clock-o')。 – NDym

+0

嗨@NDym,这不是一个猜测,在你的回答中你提到'我必须选择fa fa-clock-o和fa fa-location-arrow.'这样的类,并且'目标是隐藏那些FontAwesome图标'以便类选择器将选择所有这些FontAwesome图标。 – artemisian