6

我正在使用一个 asp 菜单,它是自动插入 style="width:3px;" 进入我的菜单表 tds 在我的选项卡之间创建一个讨厌的 gab。我正在测试用 jquery 删除这种内联样式,而不是我们的开发人员只为这个化妆品瑕疵定制菜单。

下面是一个简单的例子:

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

在 jquery 中,我可以通过以下方式删除所有带有 style 属性的 td:

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

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

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

4

3 回答 3

10

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

您可以使用属性等于选择器

$("td[style='width:3px;']").removeAttr("style");​
于 2010-09-29T06:54:55.347 回答
8

我相信埃文只想删除 width: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, ''));
  }
});

工作示例在这里

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

于 2010-09-29T07:30:08.620 回答
4

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

试试这个:

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

请参阅工作示例

于 2010-09-29T06:32:37.233 回答