Javascript 编辑列表中每个div的样式属性
我想写一个剧本来帮助我的一个色盲朋友 他在这样的页面上:Javascript 编辑列表中每个div的样式属性,javascript,html,css,Javascript,Html,Css,我想写一个剧本来帮助我的一个色盲朋友 他在这样的页面上: <div class="message-pane-wrapper candy-has-subject"> <ul class="message-pane"> <li><div style="color:#700400"></div></li> <!-- many more li items --> </
<div class="message-pane-wrapper candy-has-subject">
<ul class="message-pane">
<li><div style="color:#700400"></div></li>
<!-- many more li items -->
</ul>
</div>
var div = document.getElementById('message-pane-wrapper candy-has-subject');
var divs = div.getElementsByTagName('div');
for (var i = 0; i < divs.length; i += 1) {
divs[i].style = 'color:#00000';
}
我想做的是使用JavaScript更改所有样式标记,使颜色相同
我试过这样循环:
<div class="message-pane-wrapper candy-has-subject">
<ul class="message-pane">
<li><div style="color:#700400"></div></li>
<!-- many more li items -->
</ul>
</div>
var div = document.getElementById('message-pane-wrapper candy-has-subject');
var divs = div.getElementsByTagName('div');
for (var i = 0; i < divs.length; i += 1) {
divs[i].style = 'color:#00000';
}
var div=document.getElementById('message-pane-wrapper-candy has subject');
var divs=div.getElementsByTagName('div');
对于(变量i=0;i
但我认为这是不对的…[].forEach.call(NodeList)hack
您不应该使用空白数组来迭代节点列表,因为节点列表不是数组是有原因的。有一些
正确的方法
该脚本选择文档中的每个元素,然后使用for循环迭代节点列表,并将每个节点的文本颜色设置为#000
(函数(){
“严格使用”;
var elements=document.querySelectorAll('*'),元素;
对于(var i=0;element=elements[i];i++)element.style.color='#000000';
})();代码>
- 你好,世界
[].forEach.call(NodeList)hack
您不应该使用空白数组来迭代节点列表,因为节点列表不是数组是有原因的。有一些
正确的方法
该脚本选择文档中的每个元素,然后使用for循环迭代节点列表,并将每个节点的文本颜色设置为#000
(函数(){
“严格使用”;
var elements=document.querySelectorAll('*'),元素;
对于(var i=0;element=elements[i];i++)element.style.color='#000000';
})();代码>
- 你好,世界
如果您想更具体地选择:
如果您想更具体地选择:
“message-pane-wrapper candy has subject”
不是一个ID,而是两个类。像这样使用getElementsByClassName
:
<div class="message-pane-wrapper candy-has-subject">
<ul class="message-pane">
<li><div style="color:#700400"></div></li>
<!-- many more li items -->
</ul>
</div>
var div = document.getElementById('message-pane-wrapper candy-has-subject');
var divs = div.getElementsByTagName('div');
for (var i = 0; i < divs.length; i += 1) {
divs[i].style = 'color:#00000';
}
或者
var div = document.getElementsClassName('message-pane-wrapper')[0];
…或
var div = document.getElementsClassName('candy-has-subject')[0];
divs[i].setAttribute('style','color:#000000;');
如果有多个div
s具有相同的类,那么您也必须循环这些类。另一种选择是使用querySelectorAll
选择元素,并在其上循环
您不能这样设置样式属性。使用其中一个
divs[i].style.color = '#000000';
…或
var div = document.getElementsClassName('candy-has-subject')[0];
divs[i].setAttribute('style','color:#000000;');
“message-pane-wrapper candy has subject”
不是一个ID,而是两个类。像这样使用getElementsByClassName
:
<div class="message-pane-wrapper candy-has-subject">
<ul class="message-pane">
<li><div style="color:#700400"></div></li>
<!-- many more li items -->
</ul>
</div>
var div = document.getElementById('message-pane-wrapper candy-has-subject');
var divs = div.getElementsByTagName('div');
for (var i = 0; i < divs.length; i += 1) {
divs[i].style = 'color:#00000';
}
或者
var div = document.getElementsClassName('message-pane-wrapper')[0];
…或
var div = document.getElementsClassName('candy-has-subject')[0];
divs[i].setAttribute('style','color:#000000;');
如果有多个div
s具有相同的类,那么您也必须循环这些类。另一种选择是使用querySelectorAll
选择元素,并在其上循环
您不能这样设置样式属性。使用其中一个
divs[i].style.color = '#000000';
…或
var div = document.getElementsClassName('candy-has-subject')[0];
divs[i].setAttribute('style','color:#000000;');
.style
是一个对象,这意味着它具有不同的属性,您可以使用以下方法访问这些属性:
element.style.color = '#000';
您还可以使用.forEach
来降低代码复杂性:
var divs = div.getElementsByTagName('div');
Array.prototype.forEach.call(divs, function (elem) {
elem.style.color = '#000';
});
.style
是一个对象,这意味着它具有不同的属性,您可以使用以下方法访问这些属性:
element.style.color = '#000';
您还可以使用.forEach
来降低代码复杂性:
var divs = div.getElementsByTagName('div');
Array.prototype.forEach.call(divs, function (elem) {
elem.style.color = '#000';
});
@谦逊。隆隆啊是的,那会是更好的词选择。谢谢你的邀请tip@humble.rumble啊,是的,那会是更好的选择。谢谢你的提示