Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery删除内联样式 高度:111px;宽度:222px;“> ..._Jquery_Css - Fatal编程技术网

使用jQuery删除内联样式 高度:111px;宽度:222px;“> ...

使用jQuery删除内联样式 高度:111px;宽度:222px;“> ...,jquery,css,Jquery,Css,使用jQuery(或纯javascript)是否可以只删除height属性?请注意,有几个.mydiv ul实例具有不同的高度。要删除属性,请使用以下命令: <div class="mydiv"> <ul style="height:111px; width:222px;"> ... 谢谢你纠正我的答案。是的。。我想知道你想怎么做 $(".mydiv UL").css("height", ""); 函数更改样式(元素){ var currentstyle

使用jQuery(或纯javascript)是否可以只删除height属性?请注意,有几个.mydiv ul实例具有不同的高度。

要删除属性,请使用以下命令:

<div class="mydiv">
  <ul style="height:111px; width:222px;">
    ...

谢谢你纠正我的答案。

是的。。我想知道你想怎么做

$(".mydiv UL").css("height", "");

函数更改样式(元素){
var currentstyle=document.getElementById(element.style.display);
如果(currentstyle==“内联”){
document.getElementById(element.style.display=”“;
}否则{
document.getElementById(element).style.display=“inline”;
}
}
对于不同的broswers,这可能略有不同,但如果您愿意,它应该会告诉您如何更改它


哎呀。。漠视jquery-更简单:)

将您的样式属性添加到CSS,然后您可以使用以下jquery函数添加或删除类: 是的!你可以

如果将css属性设置为空值,则会将其清除

因此,如果内联样式为“背景:粉色”,则可以通过以下方式将其删除:

<script type="text/javascript">
    function changestyle(element) {
        var currentstyle = document.getElementById(element).style.display;
        if (currentstyle == "inline") {
            document.getElementById(element).style.display = "";
            } else {
            document.getElementById(element).style.display = "inline";
        }
    }
</script>
我很确定我在SE上的某个地方了解到了这一点,但是,唉,我没有网站的具体来源,所以我为不能在应该得到信任的地方给予信任而道歉

更新:

嗯,我想我应该去源头。从jQuery文档(我的重点):

将style属性的值设置为空字符串-例如$('#mydiv').css('color','')-如果该属性已直接应用于某个元素,则从该元素中移除该属性,无论是在HTML style属性中,还是通过jQuery的.css()方法,还是通过style属性的直接DOM操作。但是,它不会删除样式表或元素中已应用CSS规则的样式

只需确保样式值格式为
高度:111px;“
高度:111px;”

尝试以下操作:

$('.mydiv ul').each(function(){
    $(this).attr('style', $(this).attr('style').replace('height: ', 'height:').replace('height:'+$(this).css('height')+';', '')); 
});

+1表示正确的概念,但应为:
$(.mydiv ul”).css(“高度”、“自动”)。您引用的是一个id,其中应该是一个类。我将要发布的一个实例给出了相同的答案:这不会删除样式。CSS可能对高度有不同的定义。你应该做
.css(“高度”,“高度”),这将使样式被删除。这是一个很好的建议,但是-1因为不能删除样式是不正确的…请参阅@am not i am的注释。仅此而已,但最好保留您的原始答案,并用更多信息更新它,而不是完全替换它……它保留了评论的逻辑,以便将来的读者能够理解发生了什么。这是一个很好的建议,但不能回答OP提出的实际问题。这似乎与.css('height','')不兼容@jbabey它对我来说很好(在你的UL上粘贴一个背景色,看它是否工作)背景色不相关,它与高度属性不起作用。@jbabey到你的小提琴那里,给div一个背景色。现在注释掉你的JS。您将看到您的div大约有100像素高。现在取消对JS的注释。您将看到,由于JS删除了高度样式,您的div现在崩溃了。如果这不起作用,那么您的浏览器/JS就会出现问题。在firefox中它对我来说很好。(背景颜色与代码无关,但与您能够看到发生了什么相关)
$('.mydiv ul').each(function(){
    $(this).attr('style', $(this).attr('style').replace('height: ', 'height:').replace('height:'+$(this).css('height')+';', '')); 
});
$('.mydiv ul').height('');