更改父元素的类或样式

时间:2018-07-30 作者:Guido

我在标题中添加了这段代码。php文件:

<script type="text/javascript">
$(document).ready(function() {
    if( $(\'div\').hasClass(\'icheckbox\') && $(\'div\').hasClass(\'disabled\') ) {
        $(\'div\').parent().addClass(\'hide_empty\');
    }
});
</script>
我的目标是添加类。hide\\u empty到具有类的所有div元素的父级。icheckbox和一个类。按此顺序禁用,没有其他类。在所有情况下,这些div元素的父元素都是li元素。

我检查了许多相关问题的答案,并尝试了许多变体,但无论我使用什么样的方法,课堂都是如此。hide\\u empty从未添加到父li元素。

我做错了什么?

由于@Andrea和@dhirenpatel22的输入,我产生了以下工作代码:

在我的footer.php 我补充道:

<?php 
    function hide_empty_terms() { ?>
        <script type="text/javascript">
            jQuery(window).load(function() {
                jQuery(".icheckbox.disabled").each(function() {
                    jQuery(this).parent(\'li\').addClass(\'hide_empty\');
                });
            });
        </script>
    <?php }
    add_action(\'wp_footer\', \'hide_empty_terms\');
?>
就在之前<?php wp_footer(); ?>.这实际上添加了类hide_empty 给家长li 元素<div class="icheckbox disabled">.

3 个回复
最合适的回答,由SO网友:Andrea Somovigo 整理而成

因此,应将元素更改为<div class="icheckbox disabled hide_empty" style="">

这与问题中所述的目标不同,在问题中,您说要将类“hide\\u empty”添加到父级<li><div class="icheckbox">. @dhirenpatel22发布的代码应该可以将类hide\\u empty添加到li元素中,当然,如果要将类添加到的元素是同一个div,则应该是$(this).addClass(\'hide_empty\')

还要注意,即使元素有更多的类,hasClass()也将返回true。要仅查找同时禁用和仅禁用icheckbox+的div,我想最好的方法是:

$(".icheckbox, .disabled").each(function(){
  $(this).parent(\'li\').addClass(\'hide_empty\');
  // or $(this).addClass(\'hide_empty\') 
  //if it\'s the <div> instead of <li> you want to apply the rule
})

SO网友:dhirenpatel22

我刚刚更新了你的代码。。。

<script type="text/javascript">
$(document).ready(function() {
    $(\'div\').each(function() {
        if( $(this).hasClass(\'icheckbox\') && $(this).hasClass(\'disabled\') ) {
            $(this).parent().addClass(\'hide_empty\');
        }
    });
});
</script>
希望这能奏效。。!!

SO网友:Guido

这是我想要更改的html代码:

<div class="html_list"> <ul class="list_checkbox"> <li class="term_1675 "> <div class="icheckbox disabled" style=""> <input type="checkbox" id="term_1675" class="checkbox_term checkbox_term_1675" data-tax="product_tag" name="advies" data-term-id="1675" value="1675" style=""> <ins class="iCheck-helper" style=""></ins> </div> ...some more code... </li> <li class="term_1676 "> <div class="icheckbox disabled" style=""> <input type="checkbox" id="term_1676" class="checkbox_term checkbox_term_1676" data-tax="product_tag" name="coaching" data-term-id="1676" value="1676" style=""> <ins class="iCheck-helper" style=""></ins> </div> ...some more code... </li> ...etc... </ul> </div>

所以<div> 元素应更改为<div class="icheckbox disabled hide_empty" style="">

结束

相关推荐

Prevent loading of functions

我使用了一个主题,其中包括名为“Sharethis”的服务的共享功能和字体真棒。据我所知,函数是从函数中的以下行加载的。php。TT\\u队列::add\\u css(数组(“//netdna.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css”);TT\\u排队::add\\u js(array(\'https://ws.sharethis.com/button/buttons.js\'));如何使用子函数(因为父函数中的更改将在更新