编辑列表中每个div的样式属性

时间:2015-05-18 23:06:54

标签: 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 -->
    </ul>
</div>

我要做的是使用JavaScript来更改所有样式标记,以便颜色相同。

我试过像这样循环:

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';
}

但我不认为这是对的......

4 个答案:

答案 0 :(得分:1)

[]。forEach.call(NodeList)hack

您不应该使用空白数组来迭代节点列表,因为某种原因,节点列表不是数组。有一些excellent information about why not to use this hack

正确的方法

此脚本选择文档中的每个元素,然后使用for循环遍历节点列表并将每个节点的文本颜色设置为#000

(function () {
    "use strict";
    var elements = document.querySelectorAll('*'), element;
    for (var i = 0; element = elements[i]; i++) element.style.color = '#000000';
})();
<div class="message-pane-wrapper candy-has-subject">
    <ul class="message-pane">
        <li><div style="color:#700400">Hello World</div></li>
    </ul>
</div>

如果您特别想要问题中提到的部分中的div元素,则可以使用更具体的选择器。请注意,使用*选择器会在具有大量元素的网站上产生相当大的开销,但由于它只需在页面加载时运行一次,因此不应存在问题

(function(){
    "use strict";
    var elements = document.querySelectorAll('.message-pane-wrapper.candy-has-subject div'), element;
    for (var i = 0; element = elements[i]; i++) element.style.color = '#000000';
})();
<div class="message-pane-wrapper candy-has-subject">
    <ul class="message-pane">
        <li><div style="color:#700400">Hello World</div></li>
    </ul>
</div>

答案 1 :(得分:1)

如果您想更具体地选择您的选择:DEMO

        var targetApplication = Process.GetCurrentProcess().ProcessName + ".exe";
        int ie_emulation = 9000;

答案 2 :(得分:1)

'message-pane-wrapper candy-has-subject'不是ID,而是两个类。像这样使用getElementsByClassName

无论

var div = document.getElementsClassName('message-pane-wrapper')[0];

......或

var div = document.getElementsClassName('candy-has-subject')[0];

如果有多个div具有相同的类,则您还必须循环遍历这些类。另一种方法是使用querySelectorAll选择元素,然后循环使用。

您无法像这样设置style属性。使用

divs[i].style.color = '#000000';

......或

divs[i].setAttribute('style','color:#000000;');

答案 3 :(得分:0)

minsmaller <- function(x,value) which.min(abs(value - replace(x, x>value, Inf))) minsmaller(f, 18) #[1] 6 minsmaller(f, 19) #[1] 7 是一个对象,这意味着它具有您使用的不同属性:

.style

您也可以使用element.style.color = '#000'; 来降低代码复杂性:

.forEach