2014-10-29 2 views
0

오케이 죄송하지만 지금은 2 단계 질문입니다.상태 속성 값에 액세스하는 방법

어떻게 Riversdale에서 상태 속성의 값 (나는 이미 대답 생각하는)

하지만 이제 올바른 속성을 선택하면 약간의 문제에 접근하는 방법을 Western Cape

에 통과 않습니다.

entry = $(this).closest('.expandListContentRow div:nth-child(1)').attr('id');

항목은 나에게 올바른 ID를 제공하지만, 나는 status 속성에 액세스하려면.

<div class="expandListItem highlight" id="b82e107" status="deactivated">Sandy Bay</div>

어떻게 상태 속성의 값을받을 수 있나요?

이 당신에게 내가

<div class="expandListContentRow contentCol2" id="28fa1d89" style="display: block;"> 
    <div class="expandListItem addNewProv" id="SouthAfrica_button">ADD NEW PROVINCE</div> 
    <div class="expandListItem b82e107e highlight" id="b82e107e" status="deactivated">Western Cape</div> 
    <div class="expandListContent_sub1"> 
     <div class="expandListContentRow_sub1 contentCol_sub1 SUB_b82e107e" id="b82e107e" style="display: block;"> 
      <div class="expandListItem_sub1 addNewCity" id="Antalia_button">ADD NEW CITY</div> 
      <div class="expandListItem_sub1 highlight_sub" id="429973ea" status="deactivated">Riversdale</div> 
      <div class="expandListItem_sub1" id="b71e53aa" status="deactivated">Ashton</div> 
      <div class="expandListItem_sub1" id="a3fcad14" status="deactivated">Cape Town</div> 
      <div class="expandListItem_sub1" id="5dcbf222" status="deactivated">Somerset West</div> 
     </div> 
    </div> 
</div> 

을 통과하려는 목록의 아이디어를 줄 수있는 그래서 내가 Riversdale을 활성화 할 경우, 나는이 인스턴스에서 같은 웰, Western Cape 부모를 활성화해야합니다. 분명히 잘못 건너 섰습니다. 그렇다면 Riversdale에서 Western Cape으로 어떻게 이동합니까?

답변

1

값을 얻으려면 .attr()에 속성 이름을 전달해야합니다. 일부 요소에 중복 ID가 있습니다. 그것은 틀렸다. 또한 원하는 div를 목표로하는 잘못된 셀렉터가 있습니다. 다음을 사용하십시오 :

entry = $(this).closest('.expandListContent_sub1').prev().attr('status'); 

HTML의 비 규격 속성을 사용하면 페이지가 유효하지 않게됩니다.

DOM :

<div class="expandListItem highlight" id="b82e107" data-status="deactivated">Sandy Bay</div> 

JS :

entry = $(this).closest('.expandListContent_sub1').prev().data('status'); 
+0

나는 그것을 시험해 보았다. 그것은 'undefined'와 함께 cam back – morne

+0

@mornenel : http : //jsfiddle.net/9brjp7c2/ –

+0

mmm 좋아, 어쩌면 우회전 후 오른쪽 위치에 있지 않습니다.도움을 주셔서 감사합니다, 나는 이것을 사용하고, 그냥 내 트래버스에 대해 확인해야합니다. – morne

1

당신이 attr() 속성과 동일한 기능을 수행 할 수 있습니다 * 대신 속성 데이터 -를 사용합니다.

entry = $(this).closest('.expandListContentRow div:nth-child(1)').attr('id'); 
var status = $(this).closest('.expandListContentRow div:nth-child(1)').attr('status'); 

그러나 porper에 대한 W3C 유효성 검사를 사용 HTML5 데이터 대신 때문이다.

<div class="expandListItem highlight" id="b82e107" data-status="deactivated">Sandy Bay</div> 

$(this).closest('.expandListContentRow div:nth-child(1)').data('status'); 
+0

mmm 좋아, 어쩌면 이동 후 오른쪽 위치에 있지 않습니다. 도움을 주셔서 감사합니다, 나는 이것을 사용하고, 그냥 내 트래버스에 대해 확인해야합니다. – morne

1

기타에 의해 언급 한 바와 같이이

$('.expandListItem').attr('status'); 

을 작동해야하지만, 당신이 원하는 결과를 얻지 못하고으로, 그래서 문제 is.Hope가 도움이 어디

console.log($(this)) 
console.log($(this).closest('.expandListContentRow')) 
console.log($(this).closest('.expandListContentRow div:nth-child(1)')) 

확인하기 위해 수행

관련 문제