2010-09-29 18 views
5

Hay un menú asp que estoy usando que se está insertando automáticamente style = "width: 3px;" en mi mesa de menú tds creando una desagradable sopa de letras entre mis pestañas. Estoy probando eliminar este estilo en línea con jquery en lugar de que nuestro desarrollador personalice el menú solo para este defecto cosmético.Eliminar estilo en línea específico con jquery

a continuación es un ejemplo sencillo:

<table border="1" cellspacing="0" cellpadding="0"> 
    <tr> 
     <td style="width:3px;">hello world</td> 
    </tr> 
</table> 

en jQuery, puedo eliminar todos los TDS con el atributo de estilo haciendo:

$('td').removeAttr('style'); 

lo tanto, mi pregunta es, ¿Cómo se orienta la estilo en línea que solo contiene 3px?

Aquí es mi demostración en vivo: http://jsfiddle.net/n9upF/

Respuesta

9

que están pidiendo cómo se puede seleccionar atributo de estilo que tienen de td, con sólo width:3px; en ella, ¿verdad?

Puede usar Attribute Equals Selector.

$("td[style='width:3px;']").removeAttr("style");​ 
+0

esto hizo el truco muy simple. gracias Brian! – Evan

+0

+1: ciertamente lo eché de menos :) – Sarfraz

+0

¿Puede esto funcionar solo por tipo de estilo? Estoy tratando de eliminar todas las apariciones de font-family y font-size, pero no sé el valor de ellos. –

4

lo tanto, mi pregunta es, ¿cómo puedo solamente objetivo el estilo en línea que contiene solamente 3px?

Prueba esto:

$('td').each(function(){ 
    if ($(this).attr('style').indexOf('3px') !== -1){ 
    $(this).removeAttr('style'); 
    } 
}); 

See Working Example

+0

esto es genial si necesito matar a todos los estilos. gracias – Evan

8

Creo que Evan quería eliminar solo el ancho: 3px; del estilo, mientras que el otro estilo css permanece en el atributo. Así que aquí está la solución:

$('td').each(function(){ 
    if ($(this).attr('style').indexOf('3px') !== -1){ 
    var style = $(this).attr('style'); 
     $(this).attr('style', style.replace(/width: ?3px;/g, '')); 
    } 
}); 

Ejemplo de trabajo es here

Si esto no es lo que necesitaba entonces el Sarfraz se muestra la solución adecuada. :)

+0

nik - gracias ¡para su ayuda! Encontré que Brian parece hacer el truco con un poco menos de código, mientras que el suyo dirigió mi pregunta con más esfuerzo después de que Sarfaz comenzara a codificar. De nuevo, agradezco su ayuda. – Evan

+0

Mi solución funcionaría si solo desea eliminar el ancho y mantener el otro estilo. Si solo quiere eliminar completamente el atributo de estilo, la solución de Brian es la más corta. No funcionó para mí. De todos modos :) –

+0

+1. La mejor solución para "eliminar estilos en línea específicos"! –

Cuestiones relacionadas