若条件为true,则将类分配给子级
Assign a class to a child if condition is true
如果父元素包含style="display:none;"和某个类,我该如何给子元素一个类?
例如,我想要:
<div style="display: none;" class="hidden">
<a href="#">Hidden</a>
</div>
将:
<div style="display: none;" class="hidden">
<a href="#" class="new-class">Hidden</a>
</div>
以下假设页面上只有一个div
。如果没有,您将需要遍历元素并执行非常相似的逻辑。
<div style="display: none;" class="hidden">
<a href="#">Hidden</a>
</div>
<script>
document.addEventListener('DOMContentLoaded', function(){
var el = document.getElementsByTagName('div')[0];
if(el.style.display == 'none'){
el.children[0].setAttribute('class', 'someclass');
}
}, false);
</script>
另一种使用querySelectorAll
:的解决方案
<div style="display: none;" class="hidden">
<a href="#">Hidden</a>
</div>
<script>
document.addEventListener('DOMContentLoaded', function(){
var els = document.querySelectorAll('div.hidden[style*="display: none"]');
for(var i = 0; i < els.length; i++) {
els[i].children[0].setAttribute('class', 'someclass');
}
}, false);
</script>
http://jsfiddle.net/3f8zQ/
如果您使用的是jQuery:
var hidden = $('.hidden');
if (hidden.css('display') === 'none') {
hidden.children('a').addClass('new-class');
}
或者听起来你想以子元素为目标并检查它的父元素,在这种情况下,你需要某种方式来引用该子元素(一个id或一个类),然后你就可以执行child.parent()
了。
您也可以在香草JS中轻松完成,但这将取决于您必须支持的浏览器(是否可以使用document.getElementsByClassName
等)
在jQuery中,您可以简单地使用$(':hidden > a')
:
http://jsfiddle.net/t8K5e/
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Jslint 错误:需要条件表达式,而是看到分配
- 将JavaScript函数分配给提交按钮,该按钮应有条件执行
- 循环遍历数组匹配变量并分配要执行的条件
- jQuery - 遍历 DOM 中的所有类,按间隔分配条件
- 如何根据条件在输入上分配 ng 模型中的变量
- 若条件为true,则将类分配给子级
- JS-使用||分配条件变量的区别或优势
- 给kineticjs对象分配两个补间,但有条件地只执行一个
- 我可以在jquery中根据条件分配函数吗?
- 分配的处理成本vs条件
- 如何在meteor上创建条件,将admin角色分配给新用户
- 在Jade中有条件地在body上分配一个类
- 仅当 JavaScript 中的三元运算符中的条件为 true 时才分配
- 根据条件为javascript变量分配模型值(在Razor中)
- 如何使用条件重新分配和声明新变量
- 为数组中的元素分配条件/类别