2017-10-23 3 views
1

私はundefined valueundefined valueの内部でtdの値coolautosuggestの内部にアクセスしようとしています。tdの値がcoolautosuggest jQuery関数の中に来ていません

HTMLのCODE:

<table class="table table-bordered cust_job_over"> 
    <thead> 
    <tr> 

     <th>Skillset</th> 
     <th>Assignee</th> 

    </tr> 
    </thead> 
    <tbody class="LabourTbody"> 
    <tr> 

     <td width="45%"> 
     <input type="hidden" class="labourAssetID" value="31" name=""><span class="skill">0.35m Planer Operator</span></td> 
     <td width="40%" style="position: relative;"> 
     <input type="hidden" class="" value="167,169,172,173" name=""> 
     <input type="text" class="form-control cool-auto-suggest" style="width: 90% !important;float:left;"> 
     <div class="assig_noti assign_complete cust_job_over_noti"></div> 
     </td> 

    </tr> 
    <tr> 

     <td width="45%"> 
     <input type="hidden" class="labourAssetID" value="33" name=""><span class="skill">Sweeper Driver (CE)</span></td> 
     <td width="40%" style="position: relative;"> 
     <input type="hidden" class="" value="167,169,172,173" name=""> 
     <input type="text" class="form-control cool-auto-suggest" style="width: 90% !important;float:left;"> 
     <div class="assig_noti assign_complete cust_job_over_noti"></div> 
     </td> 

    </tr> 


    </tbody> 
</table> 

のjQuery CODE:

$(document).ready(function() { 
    $(".cool-auto-suggest").coolautosuggest({ 
    url: window.location.origin + "/datalist/", 
    showThumbnail: true, 
    showDescription: true, 
    additionalFields: { 
     "/asset": $(this).closest('tr').find('td:eq(0) .labourAssetID') 
    }, 
    onSelected: function(result) { 

    } 
    }); 
}); 

私は未定義の値に私が実装しようとしている"/asset": $(this).closest('tr').find('td:eq(0) .labourAssetID')

This is the pluginを得ているところです。

この機能の中でtdの入力値をclass nameを使用して取得する方法を教えてください。

答えて

3

$(document).ready()イベントのコンテキスト内にあるため、問題は$(this)がドキュメントオブジェクトを参照していることです。

複数cool-auto-suggestのクラスを持っている場合は、それぞれの要素を反復処理する必要があります。

$(document).ready(function() { 
    $(".cool-auto-suggest").each(function() { 
    // Here I save reference to the current iterated object 
    var $el = $(this); 

    // Here I calling the plugin separately, for each '.cool-auto-suggest' 
    $el.coolautosuggest({ 
     url: window.location.origin + "/datalist/", 
     showThumbnail: true, 
     showDescription: true, 
     additionalFields: { 
     // Here I select the correct element using the reference ($el) 
     "/asset": $el.closest('tr').find('td:eq(0) .labourAssetID') 
     }, 
     onSelected: function(result) { 

     } 
    }); 
    }); 
}); 
関連する問題