簡體   English   中英

在父div中添加類

[英]Add class in parent div

<div class="parent"> <input type="text" /> </div>

$('.parent > *')
    .focus(function() {
        $('.parent').addClass('focused');
    })
    .blur(function() {
        $('.parent').removeClass('focused');
    });

我試圖僅在輸入字段具有值的情況下才在div中添加一個類。 我的意思是,如果我們在輸入字段中輸入文本,div會自動添加一個自類。 唯一的問題是我們不能給任何類名或ID輸入。

使用此腳本,我們可以在單擊輸入時添加類。 但是,我們需要做更多的事情。

我們可以做到嗎?

您可以使用input代替focus 您還必須檢查值以添加/刪除類。 請嘗試以下方式:

 $(document).ready(function(){ $('.parent > *').focus(); $('.parent > *') .on('input', function() { if($(this).val().trim() != '') $(this).parent().addClass('focused'); else $(this).parent().removeClass('focused'); }); }); 
 .focused{ color:red; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="parent">Test <input type="text" /> </div> 

使用您提供的html,它應該可以正常工作

$('.parent > *')
.focus(function() {
   if( $(this).val().length) $(this).parent().addClass('focused');
})
.blur(function() {
    if( $(this).val().length) $(this).parent().removeClass('focused');
});

OP評論后更新

<div class="some-div">Hello</div>
<div class="parent"> <input type="text" /> </div>

$('.parent > *')
.focus(function() {
    $(".some-div").addClass('focused');
})
.blur(function() {
    $('.some-div').removeClass('focused');
});

當然,只需使用.parent > input

$('.parent > input')
    .focus(function() {
        $('.parent').addClass('focused');
    })
    .blur(function() {
        $('.parent').removeClass('focused');
    });

在此, input事件在鍵盤輸入,鼠標拖動,自動填充和復制粘貼時觸發。

您可以嘗試以下代碼-

 function toggleParentClass(elem) { console.log(elem.val()); if (elem.val().length) elem.closest('.parent').addClass('focused'); else elem.closest('.parent').removeClass('focused'); } $('.parent').on('input', function() { toggleParentClass($(this).find('input')); }); 
 .focused { background-color: red; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="parent"> <input type="text" /> </div> 

如何在輸入字段上放置事件偵聽器。

如果輸入框為空,請刪除該類。 否則,添加所需的類。

最接近可幫助您找到具有給定選擇標准的最接近成員。

對於集合中的每個元素,通過測試元素本身並在DOM樹中遍歷其祖先,獲得與選擇器匹配的第一個元素。

$('input').change(function(){
     if( $(this).val().trim() === '' ){//Empty input box
        $(this).closest('.parent').removeClass('focused');
     }
     else{
        $(this).closest('.parent').addClass('focused');
     }
  }
);

暫無
暫無

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

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