2016-09-29 2 views
0

を短くしたデータを選択する正しい方法ではありません。私はこのように感じるjQueryの複数の子どもたちに、セレクタ

$(document).on('blur', 'td', function(){ 
cID = $(this).children('div.cColor') 
       .children('select.dropdown.cColor_dropdown') 
       .children("option") 
       .filter(":selected") 
       .data("cid"); 
} 

は、この退屈なセレクタを短縮するのいずれかの可能な方法はありますか? 編集:あなたはマークアップ(HTML)を提供する場合、HTML

<tr> 
     <td class="cID"> 
      <div class="cColor"> 
       <select class="dropdown cColor_dropdown" > 
       <option data-cID="21" value="client_name">client_name</option> 
       <option data-cID="22" value="2_client_name">2client_name</option> 
       </select> 
      </div> 
     </td> 
</tr> 
<tr> 
    <td class="cID"> 
       <div class="cColor"> 
        <select class="dropdown cColor_dropdown" > 
        <option data-cID="21" value="client_name">client_name</option> 
        <option data-cID="22" value="2_client_name">2client_name</option> 
        </select> 
       </div> 
      </td> 
</tr> 

答えて

1

それは、より参考になります。 多くのオプションがあります:

cID = $(this).find('div.cColor>select.dropdown.cColor_dropdown>option:selected').data("cid"); 
cID = $(this).find('option:selected').data("cid"); // if there is only one select 
cID = $(this).find('select#select-id>option:selected').data("cid"); // select with id 
cID = $(this).find('select#select-id option:selected').data("cid"); // if select specified, no need for > 
+0

最初の提案は動作しています。 – Atis

関連する問題