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

发布于 2024-09-25 01:09:00 字数 568 浏览 5 评论 0原文

我正在使用一个 asp 菜单,它会自动插入 style="width:3px;"进入我的菜单表 tds,在我的选项卡之间创建一个令人讨厌的间隙。我正在测试使用 jquery 删除这种内联样式,而不是让我们的开发人员专门针对这种外观缺陷自定义菜单。

下面是一个简单的例子:

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

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

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

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

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

There's an asp menu I'm using that is auto inserting style="width:3px;" into my menu table tds creating a nasty gab in between my tabs. I'm testing to remove this inline style with jquery instead of our developer customizing the menu just for this cosmetic blemish.

below is a simple example:

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

in jquery, i can remove all tds with the style attribute by doing:

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

so, my question is, how can i target the inline style that only contains 3px?

Here's my live demo: http://jsfiddle.net/n9upF/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

傾城如夢未必闌珊 2024-10-02 01:09:00

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

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

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

You are asking how you can select td's that have style attribute with only width:3px; in it, right?

You can use Attribute Equals Selector.

$("td[style='width:3px;']").removeAttr("style");​
画骨成沙 2024-10-02 01:09:00

我相信埃文只想删除 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会显示正确的解决方案。 :)

I believe that Evan wanted to remove only the width:3px; from the style while the other css styling remain in the attribute. So here is the solution:

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

Working example is here

If this is not what you needed then the Sarfraz is shown the proper solution. :)

夏夜暖风 2024-10-02 01:09:00

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

试试这个:

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

查看工作示例

so, my question is, how can i only
target the inline style that contains
only 3px?

Try this:

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

See Working Example

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文