2010-10-14 30 views
7

he tratado de usar jQuery, pero no podía reemplazar la propiedad ancho de la clase .gridHeader.Cómo anular la propiedad css?

me gustaría fijar (digamos 100 px) el ancho de la primera columna de la tabla.

<html> 
    <head> 
     <style> 
      html, body { 
       font-family:Tahoma; 
       font-size:11px; 
      } 
      .grid { 
       border-left:1px solid #CCCCCC; 
       border-top:1px solid #CCCCCC; 
      } 
      .gridHeader { 
       background-color:#EFEFEF; 
       border-bottom:1px solid #CCCCCC; 
       font-weight:bold; 
       height:20px; 
       padding-left:3px; 
       text-align:left; 
       width:100%; /* problematic, that I cannot change*/ 
      } 
      table.grid > tbody > tr > td { 
       border-bottom:1px solid #CCCCCC; 
       border-right:1px solid #CCCCCC; 
       padding:3px; 
      } 
     </style> 
     <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function(){ 
       $(".gridHeader").css("width",""); 
      }); 
     </script> 
    </head> 
<body> 
    <table width="100%"> 
     <tr> 
      <td class="gridHeader" style="width:100px">Vikas 
      </td> 
      <td class="gridHeader">Vikas Patel Vikas Patel Vikas Patel 
      </td> 
      <td class="gridHeader">Vikas Patel Vikas Patel 
      </td> 
     </tr> 
     <tr> 
      <td>Vikas 
      </td> 
      <td>Vikas Patel Vikas Patel Vikas Patel 
      </td> 
      <td>Vikas Patel Vikas Patel 
      </td> 
     </tr> 
    </table> 
</body> 
</html> 

Respuesta

12

tiene que quitar el estilo en línea con removeAttr y luego usar el método css() así:

$(".gridHeader").removeAttr('style').css("width","100px"); 

Si desea aplicar el ancho de sólo la primera columna, puede utilizar el filtro :first selector como este:

$(".gridHeader:first").removeAttr('style').css("width","100px"); 
+0

Su respuesta es correcta, pero el efecto no es exactamente lo que quiero, ver el ancho real si fijo 500 píxeles para la primera columna. – Vikas

+1

@Vikas: puede establecer el ancho utilizando el método 'width' como se muestra. – Sarfraz

+0

Lo terminé, anulando el ancho de todas las columnas. gracias .. – Vikas

0

Funciona bien para mí? A menos que no entienda tu "problema".

Comprobar: http://www.jsfiddle.net/YjC6y/21/

+0

Es porque establecí "" como nuevo ancho, si lo configuro "100px", entonces funciona, ¿es interesante? ¿por qué? – Vikas

0

Si quisiera anular el CSS en línea, usted puede tener la suerte de hacerlo de esta manera:

style="width:100px !important;" 
+0

¿Lo has probado en mi código? En Firebug, parece que lo anulamos, pero el efecto no es exactamente lo que quiero, mire el ancho real si configuro 500 px. – Vikas

2

pienso que su problema no es la primera columna, pero los otros, mientras que todavía tienen 100% aplicado.

$(".gridHeader").css("width",""); 

... no funcionará, porque no ha establecido un valor legal.

Prueba esto:

$(".gridHeader").not(':first-child').css("width","auto"); 
+1

Publicación anterior, pero has guardado mi skin. – Adam

Cuestiones relacionadas