2017-05-22 47 views
1

我有以下查詢來選擇某種類型的所有inputselect元素,我需要把它擴大到排除的父母有一定的類中的所有項目:jQuery選擇排除家長與特定類

$('input,select') 
     .not('[type="checkbox"],[type="radio"],[type="button"],[type="submit"]') 
     .not(':parent.no-field-hint') // <-- NEED TO FIX THIS 
     .on('focus', function() { 
     // do something 
    }); 

我該如何修改相關行?

回答

1

這裏的邏輯是選擇有點太複雜了,除了事實沒有:parent選擇。你可以使用filter()達到你所需要的,但:

$('input, select').not('[type="checkbox"], [type="radio"], [type="button"], [type="submit"]').filter(function() { 
    return !$(this).parent().hasClass('no-field-hint'); 
}).on('focus', function() { 
    // do something 
}); 
+0

謝謝,這工作 - 只需要刪除'點.no-field-hint' – Savage

+0

哦,是啊!我的錯。很高興它對你有效 –

1

在功能只需選中父母類是什麼: https://jsfiddle.net/gzvbd729/

$(function(){ 
    $('input,select') 
     .not('[type="checkbox"],[type="radio"],[type="button"],[type="submit"]') 
     .on('focus', function() { 
     if (!$(this).parent().hasClass('parent1')) { 
      $(this).val('blaat'); 
     } 
    }); 
});