【发布时间】:2014-12-18 02:58:59
【问题描述】:
对于下面的 HTML,在五个同级的子 DIV 中的每一个中使用内联 onclick 将背景颜色设置为红色并清除所有其他 DIV 的最佳集中方式是什么?
要替换的内联方法:
<div id="tab1" onclick="setRed();">tab 1</div>
留下更清晰的标记:
<div>tab 1</div>
这就是整个事情的样子:
<div id="nav">
<div class="blue"><div>tab 1</div></div>
<div class="blue"><div>tab 2</div></div>
<div class="blue"><div>tab 3</div></div>
<div class="blue"><div>tab 4</div></div>
<div class="blue"><div>tab 5</div></div>
</div>
这是最终的解决方案,从 user2865156 中选择部分并添加一些 javascript 以清除其余部分:
$("#nav div div").on('click', function () {
if (this.style.backgroundColor !== "red") {
this.style.backgroundColor = "red";
siblingDivs = this.parentNode.parentNode.children;
for (var i = 0; i < siblingDivs.length; i++) {
if (this !== siblingDivs[i].children[0]) {
siblingDivs[i].children[0].style.backgroundColor = "transparent";
}
}
}
});
【问题讨论】:
标签: javascript jquery onclick this