2010-09-29 11 views
5

Es gibt ein ASP-Menü, das ich verwende, das ist automatisch einfügen style = "width: 3px;" in meine Menü-Tabelle tds erstellen einen bösen Gab zwischen meinen Tabs. Ich teste, um diesen Inline-Stil mit jquery zu entfernen, anstatt unseren Entwickler das Menü nur für diesen kosmetischen Makel anzupassen.Entfernen Sie bestimmte Inline-Stil mit Jquery

unten ist ein einfaches Beispiel:

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

in jquery, ich alle tds mit dem Stil-Attribute, indem Sie entfernen:

meine Frage ist
$('td').removeAttr('style'); 

so, wie kann ich das Ziel Inline-Stil, der nur 3px enthält?

Hier ist meine Live-Demo: http://jsfiddle.net/n9upF/

Antwort

9

Sie fragen, wie Sie TDs auswählen können, die Stil-Attribut mit nur width:3px; drin, nicht wahr?

Sie können Attribute Equals Selector verwenden.

+0

das hat den Trick sehr einfach gemacht. Danke Brian! – Evan

+0

+1: Das habe ich bestimmt vermisst :) – Sarfraz

+0

Kann das nur nach Stil funktionieren? Ich versuche, alle Vorkommen von Schriftfamilie und Schriftgröße zu entfernen, aber ich weiß ihren Wert nicht. –

4

so, meine Frage ist, wie kann ich nur Ziel der Inline-Stil, die nur 3px enthält?

Try this:

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

See Working Example

+0

das ist toll, wenn ich alle Stile töten muss. danke – Evan

8

Ich glaube, dass Evan nur die Breite entfernen wollte: 3px; von der Art, während das andere css-Anreden im Attribut bleibt. So, hier ist die Lösung:

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

Arbeitsbeispiel ist here

Wenn dies nicht das, was benötigt man dann die Sarfraz die richtige Lösung gezeigt. :)

+0

nik - thank you für deine hilfe! ich fand, dass Brian den Trick mit ein wenig weniger code, während dein adressiert meine Frage mit mehr Bemühung nachdem Sarfaz begann der Code. wieder, ich schätze deine Hilfe. – Evan

+0

Meine Lösung würde funktionieren, wenn Sie nur entfernen möchten die Breite und behalten Sie die anderen Styling.Wenn Sie nur die Stil-Attribut vollständig entfernen möchten, ist die Lösung von Brian in der Tat die kürzeste Aber es hat nicht für mich funktioniert. Anyway :) –

+0

+1. Beste Lösung zum Entfernen spezifischer Inline-Styles! –

Verwandte Themen