无法删除chrome中的样式属性

时间:2011-08-25 14:36:00

标签: javascript jquery html css google-chrome

我在Chrome浏览器中删除样式时遇到了麻烦。它可能有一堆不同的样式可能应用于它所以我需要删除它whoesale。这是一个问题的例子,

jsfiddle *需要Chrome

removeAttr('style')似乎没有删除样式标记。当您打开调试栏并突出显示跨度时,它会开始正常工作。

有谁知道为什么样式没有删除以及如何删除它?

7 个答案:

答案 0 :(得分:5)

而不是试图删除它,重置它呢?

$("#someElement").attr("style","");

答案 1 :(得分:3)

我决定尝试一件事。将JQuery版本更改为1.5.2,它在chrome中运行良好。所以,它似乎是最新版本的JQuery中的一个错误。我建议您只使用1.5.2,如果您可以使用它或建议Chrome用户更改浏览器。你也可以这样做:

 } else {
   $('#s').attr('style');
   $('#s').removeAttr('style');    
 }

而不是:

 } else {
   $('#s').removeAttr('style');    
  }

进行一些小错误修复/黑客攻击。

http://jsfiddle.net/pjabT/7/

答案 2 :(得分:2)

.style可能因为与CSS的关系而被锁定。

只需用

清除它就可以获得相同的效果
$('#s').attr('style','');

答案 3 :(得分:2)

我不确定为什么该属性没有被删除,.removeAttr() - 函数是否适用于“style”?

无论如何,我总是以不同的方式处理这个问题。使用你的jsFiddle的代码,它就像这样

var t = true;

setInterval(function(){
    t = !t;
    if(t){
        $('#s').css({color: 'rgb(255, 0, 0)'});
    } else {
        $('#s').attr('style', '');    
    }
}, 1000);

我改变的基本上就是这一行

$('#s').attr('style', '');   

我只是将style属性的值设置为''

答案 4 :(得分:0)

使用css,您要为此范围设置css值而不是属性

所以您需要做的就是将脚本更改为

var t = true;

setInterval(function(){
    t = !t;
    if(t){
        $('#s').attr('style', "color: rgb(255, 0, 0)");
    } else {
        $('#s').removeAttr('style');    
    }
}, 1000);

答案 5 :(得分:0)

我仍在努力,但这是一个快速解决方法:

var t = true;

setInterval(function(){
t = !t;
  if(t){
     $('#s').css('color','rgb(255, 0, 0)');
   } else {
    $('#s').css('color','rgb(0,0,0)');    
   }
}, 1000);

更新:有趣的是,请注意此代码有效:

var t = true;

setInterval(function(){
t = !t;
  if(t){
    $('#s').css({color: 'rgb(255, 0, 0)'});
  } else {
     $('#s').attr('style');
     $('#s').removeAttr('style');    
 }
}, 1000);

答案 6 :(得分:0)

你没事,有点儿。问题是带有element.removeAttribute('style')的Webkit,它不能始终如一地工作。 jQuery现在做了什么(1.6.4)可能在这里修复了:http://bugs.jquery.com/ticket/9699首先将style属性设置为nothing.setAttribute('style',''),然后删除它似乎解决了这个问题。