如何根据多个否定标准进行选择?

时间:2016-03-08 07:48:45

标签: jquery

我已经过滤了select元素以进行非多重选择:

$("select:not([multiple])").select2().on("change", function(e) {
    if ($(this).val() == "") {
      $(this).parent().find("span[role='combobox']").each(function() {
           $(this).attr("data-validate-func", "required").attr("data-validate-hint", "<?php echo _getText('global.champ.obligatoire'); ?>");
      });
    } else {
      $(this).parent().find("span[role='combobox']").each(function() {
           $(this).removeAttr("data-validate-func");
      });
    }
});

现在,我还希望过滤select元素,而不是Label作为其第一个parent。如何为此目的修改我的代码?

2 个答案:

答案 0 :(得分:2)

您可以使用.filter()

$("select:not([multiple])").filter(function(){
    return $(this).parent().is('label')
}).select2().....

答案 1 :(得分:1)

您可以为:not子句添加后代选择器:

$("select:not([multiple], label > select)").select2().on("change", //...

Working example