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啊,是的,那会是更好的选择。谢谢你的提示