如何从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;");