Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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
通过javascript操作元素样式后更改元素的css类不会';行不通_Javascript_Html_Css - Fatal编程技术网

通过javascript操作元素样式后更改元素的css类不会';行不通

通过javascript操作元素样式后更改元素的css类不会';行不通,javascript,html,css,Javascript,Html,Css,html: css: 因此,如果我使用两个按钮来更改元素的类,我可以打开和关闭按钮,但是一旦我使用其他按钮来直接操作display属性,我就不能再使用更改类名按钮来切换它们了 所以我想知道为什么会这样?更改类名不应该清除所有内容并重新分配css指令吗 您的类仍在更改,但更改显示时会覆盖类中的css规则。因此,您必须再次将其更改回特定类具有的规则 加 到show()函数 及 到hide()函数 将您的代码更改为此(JS): 并将这两个类添加到CSS中: document.getElementBy

html:

css:

因此,如果我使用两个按钮来更改元素的类,我可以打开和关闭按钮,但是一旦我使用其他按钮来直接操作display属性,我就不能再使用更改类名按钮来切换它们了

所以我想知道为什么会这样?更改类名不应该清除所有内容并重新分配css指令吗


您的类仍在更改,但更改显示时会覆盖类中的css规则。因此,您必须再次将其更改回特定类具有的规则

show()
函数

hide()
函数

将您的代码更改为此(JS):

并将这两个类添加到CSS中:

 document.getElementById("myinput").style.display = "none";
function db() {
     document.getElementById("myinput").className = "block";
}

function dn() {
     document.getElementById("myinput").className = "none";
}
使用
document.getElementById(“myinput”).style.display=“block”内联样式已添加到输入,在删除包含此样式的类时无法删除它。内联样式必须单独删除


内联样式(如JS设置的样式,或style=”“块中的样式)的优先级高于CSS类。除非您使用
,否则它们在设计上总是胜过内联样式!重要信息
在样式上覆盖它。

您正在使用jQuery,为什么不一直使用它:

.none
{
    display:none;
}

.block
{
    display:block;
}
不需要更改JavaScript的类名,也不需要CSS

document.getElementById("myinput").style.display = "block";
 document.getElementById("myinput").style.display = "none";
function db() {
     document.getElementById("myinput").className = "block";
}

function dn() {
     document.getElementById("myinput").className = "none";
}
.none
{
    display:none;
}

.block
{
    display:block;
}
$("#s, #db").on("click", function() {
 $('#myinput').show();
});
$("#h, #dn").on("click", function() {
 $('#myinput').hide();
});