2014-12-29 6 views
0

전에 첫 번째 attribut 찾기 : jQuery로jQuery를 나는 다음과 같은 구조를 가지고 요소

<tr data-commercial="commercial_8"> 
    <td class="tdCommercial"> 
    Mister X 
    <h4>Planning</h4> 
    <ul> 
    <li data-day="Monday"> 
     <i class="fa fa-plus-square fa-1"></i> 
     <i class="fa fa-minus-square fa-1"></i> 
     Lundi 
     <span class="number">2</span> 
    </li> 
    <li data-day="Tuesday"> 
    <li data-day="Wednesday"> 
    <li data-day="Thursday"> 
    <li data-day="Friday"> 
    </ul> 
    </td> 
<td class="Monday"></td> 
<td class="Tuesday"></td> 
<td class="Wednesday"></td> 
<td class="Thursday"></td> 
<td class="Friday"></td> 
<td class="Saturday"></td> 
<td class="Sunday"></td> 
</tr> 

, 내가 요소 <i class="fa fa-plus-square fa-1"></i>와 함께 onClick 이벤트를 사용하고 있습니다.

첫 번째 tr에서 data-commercial 속성을 검색하는 가장 좋은 방법은 무엇입니까?

구조가 변경 될 수 있으므로 나는

감사합니다 "myElement 전에 첫 번째 데이터 상업적 속성을 찾을 수 있습니다"와 같은 뭔가가 필요!

답변

1

세트의 각 요소에 대해 사용 .closest()

, 요소 자체를 테스트하고 DOM 트리에 조상을 통해 통과하여 선택 일치하는 첫 번째 요소를 얻을.

예 :

var commercial = $(this).closest('tr').data('commercial'); 

참고 : this 제공은 <i class="fa fa-plus-square fa-1"></i>

1
$('#myElement').closest('tr').attr('data-commercial'); 
1

를 사용하여 가장 가까운 요소를 참조 :

$(this).closest('tr').data('commercial'); 
0
$(this).parents("tr").data("commercial") 
0

jquery에서 .closest()을 사용하십시오.

$(this).closeset('tr').data('commercial'); 
관련 문제