2012-09-10 7 views
10

ho collezione di selezionare elementi, quando cambio valore di uno elementi selezionati per la prima volta questa funzione non funzionano funziona la seconda volta che cambia il valore e nella consolle ho thisJquery: l'uso dell'attributo specificato degli attributi è deprecato. Esso restituisce sempre vero

codice jQuery:

codice
$(document).ready(function() { 
    var collection = $('select.ddlJ'); 
    console.log(collection); 
    for (var element in collection) { 
     $(element).change(function() { 

      $('select.ddlJ').change(function (e) { 
       $(this).parent().parent().find('td:last').prev().find('span').html(
        $(this).parent().parent().find('select.ddlJ').filter(function() { 
         return $.trim($(this).val()) == 'm'; 
        }).length); 

       $(this).parent().parent().find('td:last span').html(
       $(this).parent().parent().find('select.ddlJ').filter(function() { 
        return $.trim($(this).val()) == 'n'; }).length); 
      }); 
     }); 
    } 
}); 

HTML:

<table cellspacing="0" border="1" style="border-collapse:collapse;" id="grid1" 
    rules="all"> 
     <tbody><tr> 
<th scope="col">Nr de ord</th> 
<th scope="col">StudentId</th> 
<th scope="col">Name LName</th> 

<th scope="col"> 
     <span id="mondayText">monday<br></span> 
     <span id="monday">14.05.2012</span> 
    </th> 
<th scope="col"> 
    <span id="thuesdayText">thuesday<br></span> 
    <span id="thuesday">15.05.2012</span> 
</th> 
<th scope="col"> 
    <span id="wednesdayText">wednesday<br></span> 
    <span id="wednesday">16.05.2012</span> 
</th> 
<th scope="col"> 
    <span id="thursdayText">thursday<br></span> 
    <span id="thursday">17.05.2012</span> 
</th> 
<th scope="col"> 
    <span id="fridayText">friday<br></span> 
    <span id="friday">18.05.2012</span> 
</th> 
<th scope="col"> 
    <span id="saturdayText">saturday<br></span> 
    <span id="saturday">19.05.2012</span> 
    </th> 
    <th scope="col"> 
    <span id="M">Total1</span> 
    </th> 
    <th scope="col"> 
    <span id="N">Total2</span> 
    </th> 
       </tr><tr> 
       <td> 1 </td> 
       <td>110001</td> 
       <td>Test1 Test1</td><td> 
       </td><td> 
       </td><td> 
       </td><td> 
<select class="ddlJ" id="a1111_0" name="ctl00$contentbody$grid1$ctl02$a1111"> 
       <option value="a" selected="selected">a</option> 
       <option value="m">m</option> 
       <option value="n">n</option> 
      </select> 
<select class="ddlJ" id="a2222_0" name="ctl00$contentbody$grid1$ctl02$a2222"> 
       <option value="a" selected="selected">a</option> 
       <option value="m">m</option> 
       <option value="n">n</option> 
      </select> 

          </td><td> 
          </td><td> 
          </td><td> 
          <span class="label" id="totalM"></span> 
          </td><td> 
          <span id="totalN"></span> 
          </td> 
     </tr><tr> 
     <td> 2 </td> 
       <td>110002</td> 
       <td>Test2 Test2</td> 
       <td></td> 
       <td></td> 
       <td></td><td> 
<select class="ddlJ" id="a1111_1" name="ctl00$contentbody$grid1$ctl03$a1111"> 
       <option value="a" selected="selected">a</option> 
       <option value="m">m</option> 
       <option value="n">n</option> 
      </select> 

       </td><td> 
       </td><td> 
       </td><td> 
       <span class="label" id="totalM"></span> 
       </td><td> 
       <span id="totalN"></span> 
        </td> 
     </tr><tr> 
      <td> 
         3     
       </td><td>110008</td><td>Test3 Test3</td><td> 
       </td><td> 
       </td><td> 
       </td><td> 
<select class="ddlJ" id="a1111_2" name="ctl00$contentbody$grid1$ctl04$a1111"> 
       <option value="a" selected="selected">a</option> 
       <option value="m">m</option> 
       <option value="n">n</option> 
      </select> 
         </td><td> 
       </td><td> 
       </td><td> 
       <span class="label" id="totalM"></span> 
       </td><td> 
        <span id="totalN"></span> 
          </td> 
     </tr> 
    </tbody> 
</table> 
+2

Si prega di inviare la parte pertinente del codice. E sei sicuro che questo avviso sia causato cambiando il valore di questi elementi (o potrebbe essere qualcos'altro)? –

+0

BTW, piuttosto che usare .parent(). Parent(), potresti voler usare .end() invece per "annullare" le precedenti operazioni di catena "distruttiva". Credo che otterrai prestazioni migliori in questo modo, anche se in realtà non l'ho misurato. http://api.jquery.com/end/ – iX3

+0

Si prega di includere l'HTML in questione e JavaScript/jQuery. Per ottenere una risposta migliore più rapidamente, consiglio vivamente di pubblicare un esempio che mostri il problema con uno strumento online come JS Fiddle: http://jsfiddle.net/ – iX3

risposta

1

Provare a cambiare

var collection = $('select.ddlJ') 

da usare jQuery.get()

var collection = $('select.ddlJ').get();  
// BTW, this is similar to $('select.ddlJ')[0] 

che ti da elementi DOM reale, piuttosto che un oggetto jQuery abbinandoli. In alternativa (e il modo in cui probabilmente lo farei), sarebbe quello di cambiare invece

for (var element in collection) 

utilizzare jQuery.each()

$('select.ddlJ').each(function(i, element) { ... }); 
+0

Ho cambiato come hai detto ed è sempre lo stesso attributo Attributo specificato degli attributi è deprecato. Ritorna sempre vero. [Interrompi su questo errore] \t ...], avanzamento: [c, "notifica"]}, funzione (a, b) {var c = b [0], e = b [1], g; f .isFunction (c)? i [a] (... jquery .... min.js (riga 2) – Alex

+0

OK, quindi probabilmente c'è qualcos'altro, ma quella parte mi è saltata addosso come un errore. non vedi nulla di immediatamente ovvio nel tuo codice in cui stai accedendo a qualche attributo. Incontri questo errore in tutti i browser? Quale/versione stai usando? Cercherò un ulteriore sguardo se puoi fornire un esempio dal vivo (es. jsFiddle - Sono felice di aiutarti a risolvere il problema, ma non ha senso per me provare a riprodurre il tuo problema - Voglio solo fare la parte divertente: D) – iX3

+0

Questo ha risolto il tuo problema? Non ho mai visto l'effettivo problema. Sto assumendo che tu abbia funzionato, ma forse potresti voler postare qualche informazione in più per altri utenti che potrebbero avere un problema simile. – iX3

1

provare a cambiare il .VAL() per .attr ('valore')

+0

nulla cambiato :( – Alex

+1

Questo ha fermato l'errore per me, ma ho letto che .val() è preferito a .attr ('valore'), in particolare per selezionare le caselle che è la mia situazione ... – rigyt

+0

ha funzionato anche per me .. –

Problemi correlati