2011-03-07 40 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

的DIV。兒童由於()只選擇直接子項。凡爲「#X Y」選擇元素的所有後代Y及其ID X.

+0

哦,我明白了!那麼是否有必要重寫第1行,以便它以'$ target_box.'開頭,讓代碼更易於讀取? – trusktr 2011-03-07 07:27:57

+4

@trusktr用'find'替換'children' – Adeel 2011-03-07 07:30:44

2

$target_box.find

孩子取代「兒童」在$target_box.children選擇直接孩子而找長相內節點/發現!

1

或者,你可以使用$target_box作爲context

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

(是的,這違反了OP的評論*「那麼,有什麼方法重寫線#1,使之與$ target_box開始對具有意向。代碼是更可讀?「*直到我發佈後纔看到它。)

相關問題