使用jquery删除特定的内联样式

时间:2010-09-29 06:28:48

标签: jquery css inline-styles

我正在使用的asp菜单是自动插入样式=“width:3px;”进入我的菜单表tds在我的标签之间创建一个令人讨厌的瞎扯。我正在测试用jquery删除这个内联样式,而不是我们的开发人员为这个化妆品瑕疵定制菜单。

下面是一个简单的例子:

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

在jquery中,我可以通过执行以下操作删除所有带有style属性的tds:

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

所以,我的问题是,我如何定位仅包含3px的内联样式?

这是我的现场演示:http://jsfiddle.net/n9upF/

3 个答案:

答案 0 :(得分:9)

您在询问如何选择仅包含width:3px;的样式属性的td,对吗?

您可以使用 Attribute Equals Selector

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

答案 1 :(得分:8)

我相信Evan只想删除宽度:3px;从样式,而其他CSS样式保留在属性中。所以这是解决方案:

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

工作示例为here

如果这不是您所需要的,那么Sarfraz就会显示出正确的解决方案。 :)

答案 2 :(得分:4)

  

所以,我的问题是,我怎么才能   定位包含的内联样式   只有3px?

试试这个:

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

See Working Example