使用 JavaScript 更改标签属性的值
change value of attributes of a tag using javascript
我有以下由Drupal生成的HTML
<fieldset id="webform-component-lunchset" class="webform-component-fieldset form-wrapper" style="">
<div id="webform-component-lunchset--lunch" class="form-item webform-component webform-component-radios webform-container-inline" style="">
...Radio Button div tags here
</div>
</fieldset>
<fieldset id="webform-component-dinnerset" class="webform-component-fieldset form-wrapper" style="display: none;">
<div id="webform-component-dinnerset--dinner" class="form-item webform-component webform-component-radios webform-container-inline" style="display: none;">
...Radio Button div tags here
</div>
</fieldset>
我的目的是允许用户根据一天中发起预订的时间选择用餐时间。为此,我注意到我必须更改 style="display: none;" 对于我要隐藏的字段集,以及 style=" 对于我要显示的字段集。我有以下 Javascript 语句来更改 DIV 标签的样式属性,但它似乎不起作用。任何帮助将不胜感激。
window.onload = (function() {
var today = new Date();
var day = today.getDay();
var hour = today.getHours();
var lunchtime1 = document.getElementById('webform-component-lunchset');
var lunchtime2 = document.getElementById('webform-component-lunchset--lunch');
var dinnertime1 = document.getElementById('webform-component-dinnerset');
var dinnertime2 = document.getElementById('webform-component-dinnerset--dinner');
if (hour >= 15 && hour < 22) {
lunchtime1.style="display: none;";
lunchtime2.style="display: none;";
dinnertime1.style=" ";
dinnertime2.style=" ";
sundaytime1.style="display: none;";
}
});
不知道为什么它不起作用,将不胜感激任何帮助。提前谢谢你
当您要使用对节点的引用的 style
属性时,您使用的是 DOM API。DOMElement对象有一个属性,称为style
,它也必须是对象。所以要么写:
lunchtime1.style.display = 'none';
或者使用 setAttribute
方法 - 这样您就可以一次性设置整个样式属性:
lunchtime1.setAttribute('style','display: block; background-color: #F00;');
这应该可以解决问题...
注意:
正如Tim Down指出的那样,旧的IE不能像像样的浏览器那样setAttribute
,所以第一种方法是最可靠的。我正在调查此事。例如,IE不允许你编写someNode.setAttribute('onclick', 'clickHandler()');
。
我也遇到了似乎只影响某些元素(通常是表单元素)的问题,但是在设置样式属性时,我不能确定......您无法设置某些属性,或者可能无法对某些元素设置任何属性。无论什么。。。一旦我对此了解更多,我将更新此答案。(目前周围没有Windows框,所以没有IE测试)
我认为style="<string>"
是不可能的。你必须写lunchtime1.style.display = "none"
.Style 是一个"完整"的 js 对象。
无论如何,有理由不使用jQuery吗?
dinnertime1.style.display="inline";
相关文章:
- 查找所有TD标签并读取其数据属性
- 使用json数据更改视频标签中的src属性
- 在jquery中,从同一对象的属性设置输入字段和标签的正确方法是什么
- 至于所有输入的标签都用指定的属性来设置,例如属性检查=false
- 使用 Div 标签的 location.href 属性时,Eval 不起作用
- SEO机器人是否总是遵循A标签的href属性中的URL,即使点击/点击被Javascript拦截
- 如何在 javascript 中为没有值的标签选择属性
- 使用父标签中的样式属性附加新标签
- 如何在 jquery 和 javascript 中检索 html 标签属性
- JavaScript-多次创建具有相同属性的标签
- Wordpress:如何更改图像标签中的源属性
- Wicket:获取标签属性
- 使用jQuery通过更改src属性来设置一个图像标签的动画
- 标签的属性在角度方向上不起作用
- Knockout.js中使用的唯一ID;对于“;单选按钮组中的标签属性
- 如何使用jQuery在属性标签中选择元素ID
- 如何在 struts2 属性标签中给出 javascript 函数和 css 样式
- 创建“title"属性标签
- 访问和更改