2014-11-13 2 views
1

내 질문에 대해서는 udacity.com 메인 페이지를 참조하십시오.d3에서 깊은 요소 선택

음,이 텍스트에 액세스하려고합니다. "Udacity Difference"는 페이지 중간에 있습니다. 시도 :

d3.select("div.banner-content.h2.h-slim") 
d3.select("div.banner-content.h-slim") 

위 작업 중 아무 것도 작동하지 않습니다. 그래서이 페이지의 dev-tools 요소 섹션을 살펴 보았습니다. 는 그럼 난 마우스를하고 볼 수 있습니다 : div.banner-내용,

{div.container 
     {div.row 
      {div.col-xs-12 text-center 
       {h2.h-slim}}}} 

그럼 내가이어야은 "용기"를 얻을 수 있는지 시도 갈까요 확인을 생각 더있다 그러나 심지어이

d3.select("div.banner-content.div.container") 

또는

d3.select("div.banner-content.container") 

나던 작업 !!!!

윤리적으로 결함이 있습니까?

+0

ID가 없으므로이 요소를 유일하게 선택할 수 있다고 생각하지 않습니다. 다른 요소에도 적용되는 클래스 만 있습니다. –

+0

@ LarsKotthoff 감사하지만 웹 페이지를 확인 했습니까? D3가 이러한 "ID없는"심층 요소에 액세스 할 수 없습니까? – shalini

+0

아, 요소에 액세스 할 수 있습니다. 관심있는 요소를 반환 할 선택자가없는 것처럼 보입니다. –

답변

2

다음과 같이 d3의 연결 구문을 사용하여 중첩 된 요소를 찾을 수 있습니다.

HTML :

<div class="banner-content"> 
    <div class="container"> 
     <h2 class="h-slim">Header</h2> 
    </div> 
</div> 

코드 :

d3.select("div.banner-content").select("div.container").select("h2.h-slim") 

편집 : 같은 긴 구문을 입력 할 필요가 없습니다. 선택기를 공백으로 구분하면됩니다.

d3.select("div.banner-content div.container h2.h-slim") 

아래 코드는이 경우에도 동일한 결과를 제공합니다. 필요한 경우 특별히 태그를 추가 할 수 있습니다.

d3.select("div.banner-content .container .h-slim") 
+0

그 작업은 :-),하지만 항상 필요합니까? 그러한 긴 요소에 액세스하기 위해 그러한 긴 구문을 입력 하시겠습니까? 아니면이 두 가지 사이의 차이점을 설명하고 구문을 모두 유지해 준 덕분에이 – shalini

+0

@Gilsha에 대한 바로 가기 논리가 완성되었습니다. 그것도 내 경우에 도움이 – rzach

+0

@ shalini 대답을 편집했습니다. 이것이 도움이되기를 바랍니다. – Gilsha