2012-09-10 22 views
10

tengo colección de elementos selectos, cuando cambio el valor de uno elementos seleccionados para la primera vez que esta función no trabajan funciona la segunda vez que cambie el valor y en la consola tengo thisJquery: el uso del atributo especificado de atributos está en desuso. Siempre devuelve verdadero

código jQuery:

código
$(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

Por favor, publique la parte relevante de su código. ¿Y está seguro de que este aviso se debe a un cambio en el valor de estos elementos (o podría ser algo más)? –

+0

Por cierto, en lugar de utilizar .parent(). Parent(), es posible que desee utilizar .end() en su lugar para "deshacer" las operaciones de cadena "destructivas" anteriores. Creo que obtendrás un mejor rendimiento de esa manera, aunque en realidad no midí esto. http://api.jquery.com/end/ – iX3

+0

Incluya el HTML relevante así como JavaScript/jQuery. Para obtener una mejor respuesta más rápido, le recomiendo publicar un ejemplo que demuestre el problema en una herramienta en línea como JS Fiddle: http://jsfiddle.net/ – iX3

Respuesta

1

Intente cambiar

var collection = $('select.ddlJ') 

de usar jQuery.get()

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

que le brinda los elementos DOM reales en lugar de un objeto jQuery emparejarlos. Como alternativa (y probablemente la forma en que lo haría), sería cambiar su lugar

for (var element in collection) 

utilizar jQuery.each()

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

Cambié como dijo y sigue siendo el mismo Uso del atributo especificado de los atributos es obsoleto. Siempre vuelve verdadero. [Salto de este error] \t ...], progreso: [c, "notificar"]}, función (a, b) {var c = b [0], e = b [1], g; f .Función (c)? i [a] (... jquery .... min.js (línea 2) – Alex

+0

OK, entonces probablemente haya algo más también, pero esa parte saltó a mí como un error. no ve nada inmediatamente obvio en su código donde está accediendo a ningún atributo. ¿Encuentra este error en todos los navegadores? ¿Cuál versión/está usando? Buscaré más si puede proporcionar un ejemplo en vivo (por ejemplo, jsFiddle - Me complace ayudar a resolver el problema, pero no tiene sentido que trate de reproducir tu problema. Solo quiero hacer la parte divertida: D) – iX3

+0

¿Esto resolvió tu problema? Nunca vi el problema real problema. Supongo que lo consiguió, pero quizás desee publicar más información para otros usuarios que puedan tener un problema similar. – iX3

1

intente cambiar el .val() para .attr ('valor')

+0

nada cambió :( – Alex

+1

Esto detuvo el error para mí. Pero he leído que .val() es preferible a .attr ('valor'), particularmente para cuadros de selección que es mi situación ... – rigyt

+0

Funcionó para mí también .. –

Cuestiones relacionadas