1
Here is mY table  structure,



  <table class="editable">
    <tbody id="contacts">
    <tr class="no_items">
    <tr class="title_with_items">
    <th>First Name</th>
    <th>Last Name</th>
    <th>e-mail</th>
    <th>Mobile</th>
    <th>Sender</th>
    <th>Sender e-mail</th>
    <th>Date</th>
    <th></th>
    </tr>
    <tr class="contact_container" style="display: none;">
    <tr class="contact_container">
    <td class="confirm">
    <td class="input">
    <input id="personal_event_event_contacts_attributes_1_first_name" type="text" value="test " size="12" name="personal_event[event_contacts_attributes][1][first_name]">
    </td>
    <td class="input">
    <td class="input">
    <td class="input">
    <td class="input">
    <td class="input">
    <td class="input">
    <td class="action">
    </tr>
    <tr class="contact_container">
    <td class="confirm">
    <td class="input">
    <input id="personal_event_event_contacts_attributes_1_first_name" type="text" value="test " size="12" name="personal_event[event_contacts_attributes][1][first_name]">
    </td>
    <td class="input">
    <td class="input">
    <td class="input">
    <td class="input">
    <td class="input">
    <td class="input">
    <td class="action">
    </tr>
    </tbody>
    </table>

テーブルで重複する連絡先を見つけたいのですが、連絡先はデータベースではなくjQueryによって追加されています。このテーブルのレコードを別の属性の配列と照合し、重複を見つけたいと考えています。Jquery の助けを借りてこれを行うことができれば、これは素晴らしいことです。

4

1 に答える 1

0

とった!私は長い間この方法を探していましたが、ついに方法を見つけました。

コードを関数でラップし、既存のリストから必要な要素の配列を見つけて、必要なリストと一致させました。

function confirm_imported() {
    var getval_array = [];
    $('imported_contacts_table').select('[name="confirm"]').each(function(check, index)     {
      if (check.checked) {
         // Checking if the records already exist in the list.
        var totalvalues =
          $('contacts').select('tr.contact_container').map(function(value,i) {
           $val = $(value);
             var getvalues = $val.select('td.input').map(function(value, index) {
               return $(value).select(value)[0].value;
             });
             var spreadvalues = $(check).up('tr').select('td.input').map(function(cval,     cin){
                return $(cval).select(value)[0].value;
             });
           // Matching records with each other one from the spreadsheet to all.
           if (!(getvalues<spreadvalues || spreadvalues<getvalues)){
             getval_array.push(spreadvalues)
             return 1;
           }
           else {
           return 0;
           }
         });
         if (jQuery.inArray(1, totalvalues) === -1) {
          $('contacts').insert($(check).up('tr'));
        }
      }
     });
于 2013-02-04T07:18:11.523 に答える