2011-03-07 2 views
0

나는이 두 줄이 있습니다두 줄의 유사한 코드 중 하나는 작동하지만 다른 하나는 작동하지 않습니다. 왜 안돼?

$target_box.children('a.ajax_trigger_title').addClass('opened_post_title'); 
jQuery('#'+$target_box.attr('id')+' a.ajax_trigger_title').addClass('opened_post_title'); 

첫 번째 줄은 작동하지 않습니다,하지만 두 번째는 않습니다. 왜? 당신이 알고 있어야하는 경우

여기에 관련 HTML입니다 :

<div class="box" id="30" style="position: absolute; left: 350px; top: 0px; margin-top: 10px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; "> 
    <h2> 
     <a class="ajax_trigger_title" id="open_30" href="http://keepskatinbro.com/2011/01/20/some-highlights-from-ksbs-throw-down-show-down/" rel="30"> 
      <span>Highlights from KSB’s “Throw Down Show Down”.</span> 
     </a> 
    </h2> 
</div> 

$의 target_box는 ".box"

답변

9

의 클래스 사업부이기 때문에 .children()는 직계 자식을 선택합니다. 외모를 찾을 동안 여기서 "#X Y는"ID X의 요소와의 모든 자손 Y를 선택로

+0

아, 알겠습니다! 거기에 더 많은 readble 코드를 갖는 의도를 위해'$ target_box.'로 시작되도록 라인 # 1을 다시 작성하는 것이 있습니까? – trusktr

+4

@trusktr'children'을'find'로 대체하십시오. – Adeel

2

$target_box.find

아이들과 함께 $target_box.children에서 "아이들을"대체 즉시 아이를 선택/노드 내부에서 발견!

1

또는, 당신은 $target_box를 사용할 수있는 context :

$('a.ajax_trigger_title', $target_box).addClass(...); 

(예이 * "그래서 그래서 $의 target_box로 시작되는 라인 # 1을 다시 작성 어떻게든지이 영업 이익의 코멘트를 위반 한 데의 의도에 대해. 더 읽기 쉬운 코드? "* 게시 한 후에야 볼 수 없었습니다.)

관련 문제