javascript - 如何使用 javascript 选择元素的所有子元素并更改 CSS 属性?

标签 javascript

我正在开发一个包含 32 个子元素的 div 项目。我需要创建一个下拉菜单来更改每个 div 和父级的背景。对于项目中没有子项的其他部分,我一直在使用以下代码:

function changediv(color) {
document.getElementById('div1').style.background = color;
}

HTML:

<select>
<option onClick="changediv('#555');">Hex</option>
<option onClick="changediv('blue');">Colorname</option>
<option onClick="changediv('url(example.com/example.png)');">Image</option>
</select>

我可以为每个 child 添加不同的 ID(id1、id2、id3...),但是有 32 个 child ,我不仅需要添加 32 个 ID,还需要添加 32 行 Javascript。一定有更好的方法;以某种方式选择子项,甚至更改选择子项的实际 CSS 代码。

谢谢,伊恩

最佳答案

虽然这可以使用 JQuery 在一行中完成,但我假设您没有使用 JQuery - 在这种情况下,您的代码将是:

var nodes = document.getElementById('ID_of_parent').childNodes;
for(var i=0; i<nodes.length; i++) {
    if (nodes[i].nodeName.toLowerCase() == 'div') {
         nodes[i].style.background = color;
     }
}

参见http://jsfiddle.net/SxPxN/对于我创建的一个简单示例 - 单击“更改它们”以查看其实际效果

关于javascript - 如何使用 javascript 选择元素的所有子元素并更改 CSS 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9780443/

相关文章:

javascript - AJAX - 是否有允许用户从一组照片中选择照片的开源应用程序?

javascript - 不能让div去页面底部,CSS,HTML

javascript - dc.js 响应式 geojson 美国 map

javascript - 使表格单元格位于同一行并使其看起来像按钮

javascript - 如何实现这个定价计算器

用于检查时间格式的 JavaScript 正则表达式

javascript - 当我在函数中使用参数时 setinterval 不起作用

javascript - Bookshelf JS 访问模型的 idAttribute 属性的值

javascript - 什么方法最适合在 JavaScript 中实例化其他函数的函数?

javascript - 将点击事件从 Canvas 传播到 div