簡體   English   中英

如果孩子跨度上課,則顯示父母DIV

[英]Show parent DIV if children spans have class

我試圖弄清楚為什么這不起作用。 我有一個div ,如果它有一個或多個span子類別為.reqiredError的類,則希望將其切換為打開.reqiredError

參見JSFiddle

<div class="more-content" style="display:none;">
    <div class="col-xs-5 form-group">
        <label for="dua-status">
            Status: 
            <span class="required">*</span> 
            <span class="requiredError">Required Field</span>
        </label>
        <select id="dua-status">
            <option>Open</option>
        </select>
    </div>
</div>
$(document).ready(function() {
    if ($('span').hasClass('requiredError')) {
        $(this).closest().parent('div.more-content').fadeIn(0);
    }
});

您不需要if語句。

相反,使用:has()將它們作為選擇器的目標。 這樣做的好處是您不必導航到父級,因為上下文將是具有這些范圍的父級div。

 $(document).ready(function() { $('div.more-content:has(.requiredError)').fadeIn(0); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="more-content" style="display:none;"> <div class="col-xs-5 form-group"> <label for="dua-status">Status: <span class="required">*</span> <span class="requiredError">Required Field</span> </label> <select id="dua-status"> <option>Open</option> </select> </div> </div> 

您可以找到目標元素,然后使用.closest()找到目標祖先元素

 $(document).ready(function() { $('.requiredError').closest('.more-content').fadeIn(0); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="more-content" style="display:none;"> <div class="col-xs-5 form-group"> <label for="dua-status">Status: <span class="required">*</span> <span class="requiredError">Required Field</span> </label> <select id="dua-status"> <option>Open</option> </select> </div> </div> 

最近與

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM