Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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,当用户更改的值时,我试图更改标记的显示CSS属性 以下是我的HTML代码: <select type="text" name="category" onblur="display_hidden_fields();"> <option><!-- Content --></option> <option><!-- Content --></option> </select> <d

当用户更改
的值时,我试图更改
标记的显示CSS属性


以下是我的HTML代码:

<select type="text" name="category" onblur="display_hidden_fields();">
    <option><!-- Content --></option>
    <option><!-- Content --></option>
</select>

<div id="hidden" style="display:none;">
    <label for="test">Label</font></label>
    <select type="text" name="test">
        <option value="1">Default</option>
        <option value="2">Value1</option>
        <option value="3">Value2</option>
    </select>
</div>


好。当我在第一个名为“category”的
中选择一个新的
时,我会收到警报“JS Function”。因此,我的
display\u hidden\u fields()
函数正确执行。
但是这个函数的第二行。。。没有什么!不显示名为“隐藏”的我的
:(

在我看来,我的代码中似乎没有任何错误。此外,我尝试了许多变体。
-例如在
属性中指定
style=“display:block”
,并在JS中将其更改为“none”。
-或者尝试使用其他属性,如“内联”、“内联块”…
-或者使用“可见性”而不是“显示”
-或者根本不在HTML中指定任何属性。


有人能帮我吗?:)

谢谢。

[编辑]重要观察 我想我发现了一些有趣的东西。似乎有
显示的
:无
混合使用是完全没有功能的。这是我的真实代码:

<tr>
    <div id="hidden" style="display:none;">
        <td class="depot_table_left">
            <label for="sexe">Sexe</label>
        </td>
        <td>
            <select type="text" name="sexe">
                <option value="1">Sexe</option>
                <option value="2">Joueur</option>
                <option value="3">Joueuse</option>
            </select>
        </td>
    </div>
</tr>

性感
性感
焦耳
王后游戏
的内容仍会显示。我可以尝试在JS中以任何方式更改它,但它不起作用。 我还尝试删除
标记,效果很好。但是我需要这张桌子…

应该是
document.getElementById(“隐藏”).style.display=“块”
document.getElementById[“hidden”].style.display=“block”


由于作者编辑而编辑:

为什么在这里使用
?只需向table元素添加一个ID,并向其添加一个隐藏样式。例如,我找到了解决办法

正如我在编辑答案时所说,a
在a
中出现故障。 所以我写了这段代码:

<tr id="hidden" style="display:none;">
    <td class="depot_table_left">
        <label for="sexe">Sexe</label>
    </td>
    <td>
        <select type="text" name="sexe">
            <option value="1">Sexe</option>
            <option value="2">Joueur</option>
            <option value="3">Joueuse</option>
        </select>
    </td>
</tr>

性感
性感
焦耳
王后游戏
这很好用


谢谢大家;)

CSS属性应通过
cssText
属性或
setAttribute
方法设置

// Set multiple styles in a single statement
elt.style.cssText = "color: blue; border: 1px solid black"; 
// Or
elt.setAttribute("style", "color:red; border: 1px solid blue;");

不应通过将字符串直接指定给
style
属性(如
elt.style=“color:blue;”“
)来设置样式,因为它被视为只读,由于
style
属性返回一个
CSSStyleDeclaration
对象,该对象也是只读的。

onchange
而不是
onblur
(“hidden”)
而不是
[“hidden”]
?对不起,我的代码中没有使用[],这只是复制过程中的一个错误。关于onchange,我不认为使用它有什么意义。由于我的JS函数正确执行,onblur正在工作。在复制/粘贴过程中,您究竟是如何将
()
更改为
[]
?我看不出你的代码还有什么问题。做一个测试用例。不管怎样,我只是尝试了onchange,没有其他的改变,onblur和onchange之间的正常行为不同。我没有复制/粘贴我的代码,我重新键入了它(因为我的代码中有很多法语单词。这将比有用更令人不安)对不起,我没有在代码中使用[],这只是复制过程中的一个错误。在这种情况下,你发布的代码在Chrome中对我很好。我没有看到你的编辑。我刚刚找到了相同的解决方案,所以我回答自己:)无论如何,我验证了你的答案,谢谢!
// Set multiple styles in a single statement
elt.style.cssText = "color: blue; border: 1px solid black"; 
// Or
elt.setAttribute("style", "color:red; border: 1px solid blue;");