Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果条件为true,则将类指定给子类_Javascript_Jquery_Html_If Statement - Fatal编程技术网

Javascript 如果条件为true,则将类指定给子类

Javascript 如果条件为true,则将类指定给子类,javascript,jquery,html,if-statement,Javascript,Jquery,Html,If Statement,如果父元素包含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">

如果父元素包含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>

如果您使用的是jQuery:

var hidden = $('.hidden');
if (hidden.css('display') === 'none') {
    hidden.children('a').addClass('new-class');
}
或者听起来像是要以子元素为目标并检查其父元素,在这种情况下,您需要某种方法来引用该子元素(id或类),然后可以执行
child.parent()


您也可以在vanilla JS中轻松完成,但这取决于您必须支持的浏览器(是否可以使用
document.getElementsByClassName
等)

以下假设页面上只有一个
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>

在jQuery中,只需使用
$(':hidden>a')
:


我相信您需要为这个功能编写javascript。你要这里的确切密码吗?您可能需要一个要监视的项的id,以及一个用于定义函数的脚本部分。我最大的困惑是如何将style=“display:none;”作为目标,以及如何指定class=“hidden”是子项?如果(a.is(':visible'){a.parent().addClass('backgroundfilter');}@DipeshParmar,则必须使用JQuery,未标记且可能未使用的here@ChicagoRedSox在Nathan的回答中,OP说他对JQUERY持开放态度jQuery没有被提及或标记。没错,但它是一个非常常用的库。正如我在回答中所说,如果在vanilla JS中实现,您需要考虑支持哪些浏览器,因此简洁的回答更难。我对jQuery持开放态度,谢谢。我来试试。这似乎应该行得通,但由于某些原因,它不是。。。在我需要调用的一个div之后,我将a元素嵌套在大约5个div中。这可能是一个问题吗?我也可以使用#hikashop_main_image_链接将孩子作为目标,如果这样做可能会使其更加可靠。页面上有几个div类为“hidden”,这就是为什么它还需要使用类为“hidden”和style=“display:none;”将div作为目标
<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>