2011-03-10 8 views
0

これはColdFusionで書かれているので、CFマークアップコードは無視してください。これはjQueryの質問です。jQuery DOMをトラバースし、IDなしのテーブルをループする

プロジェクトに応じて、次の表が1〜200回繰り返されます。ユーザは、システム名フィールドにシステム名を入力し、「CHECK」ボタンをクリックすることができます。これはajax呼び出しを起動してデータベースをチェックし、入力したシステム名がデータベースに存在するかどうかを確認します。そうであれば、それはユーザのために他のフィールドを設定します。私は最初のTRに位置選択ボックスを設定することができますが、プラットフォーム/モデルと推定Go Liveの日付は別のTRにあるため移入しません。タグを削除することでこれを確認したので、返されるデータが良好であることがわかりました。正しい場所に配置するだけです。

CHECKボタンをクリックしてデータを返すと、jQueryは親テーブルに移動し、次に2つのTRを降りてからTDに移動してプラットフォームを探します、ゴリブの選択/入力フィールド。私はDOMをトラバース勉強してきたが、何かが兄弟、先祖など私は種類セクションラベルされたXMLの下にここで概説として、親/子関係船を取得するときに私は理解していないよ

Javascript-Basics-Part-6 )私は誰かがより良いチュートリアルやDOMをトラバースする例を提供できることを望んでいます。ここで

は、このコードは、プラットフォームのフィールドのための私のSYSTEMNAMEフィールドのために働いていないが、テーブルコード

<cfloop query="rsRequestSystems"> 
<table cellpadding="3" class="tablesorter"> 
    <tr> 
     <th class="form"><label>System Name</label></th> 
     <td><input name="systemname" type="text" class="systemname" value="#rsRequestSystems.systemname#" size="50" maxlength="50"> 
      <div class="SystemNameStatus" style="color:##0000FF"></div></td>    
     <th class="form"><label>Location</label></th> 
     <td><select class="location" name="location"> 
       <option></option> 
       <cfloop query="rsLocations"> 
        <option value="#rsLocations.optionValue#" <cfif rsRequestSystems.location eq rsLocations.optionValue>selected</cfif> >#rsLocations.optionDesc#</option> 
       </cfloop> 
      </select></td> 
     <td rowspan="2" align="center"> 
      <button type="button" class="fg-button ui-state-default ui-corner-all remove_SystemName" style="width:70px;">Remove</button> 
      <button type="button" class="fg-button ui-state-default ui-corner-all check_SystemName" style="width:70px;">Check</button></td> 
    </tr> 
    <tr> 
     <th class="form"><label>Platform/Model</label></th> 
     <td> <select class="platform" name="platform"> 
       <option ></option> 
       <cfloop query="rsPlatform"> 
        <option value="#rsPlatform.optionValue#" <cfif rsRequestSystems.platform eq rsPlatform.optionValue>selected</cfif>>#rsPlatform.optionValue# - #rsPlatform.optionDesc#</option> 
       </cfloop> 
      </select> 
      &nbsp;/&nbsp; 
      <select class="model" name="model"> 
       <option selected></option> 
       <cfloop query="rsModels"> 
        <option value="#rsModels.optionValue#" <cfif rsRequestSystems.model eq rsModels.optionValue>selected</cfif>>#rsModels.optionDesc#</option> 
       </cfloop></select>some text here</td> 
     <th class="form" nowrap><label>Estimated Go Live</label></th> 
     <td><input type="text" name="goLive" class="datepicker goLive" value="#dateformat(rsRequestSystems.golive,'mm/dd/yyyy')#" size="10"></td> 
    </tr>   
</table> 
</cfloop> 

です。

thisClicked.closest("tr").find('.systemname').val(data.systemname); //works 
thisClicked.closest("tr:odd").find('.platform').val(data.platform); //does NOT work 

それがされるまでの方法まで、ツリーの仕事だろう、私は次のことを試してみたが、エラーメッセージを生成したり、私に

thisClicked.parent().closest("tr:odd").find('.platform').val(data.platform); //does NOT work 
thisClicked.parent().child().("tr:odd").find('.platform').val(data.platform); //does NOT work 

答えて

1

「未定義」を与えたのどちらかがこの

thisClicked.closest("table").find('.platform').val(data.platform); 

をお試しくださいそれはテーブルタグを見つける。それから、プラットフォームのクラスで何かを見つけ出し、それに対する価値を設定するためにそれから作業してください。

+0

ありがとうございます。あなたは良い "traversing DOM examples"やチュートリアルを知りませんでしたか? – HPWD

+0

@dlackey私の頭の上からではありません。私はhttp://api.jquery.com/category/traversing/のすべての例を読んで興味深い/複雑なものの追加例を探しています。 –

関連する問題