jQuery:not()选择器不起作用

时间:2016-08-12 17:31:01

标签: javascript jquery jquery-selectors

我想从序列化中排除带有空值的选择。

我正试图这样做:

    var form = $('#myForm');
    var str = $(':not(select[value=""])', form).serialize();

没有错误,结果就是整个表格。 not()方法给出了相同的。

可能有什么问题?

编辑:我列出的可能与我一样重复的问题询问有关排除空字段frm序列化的可能实现,而我的说明not() Selector不起作用,询问为什么和与上述解决方案不同。

1 个答案:

答案 0 :(得分:3)

哪个过滤元素属性value的元素等于空字符串而不是具有当前值的元素为空字符串。

<小时/>  对于使用当前值作为空字符串过滤元素,请使用 filter() 方法。

var str = $(':input', form).filter(function(){
   return this.value.trim() != '';
}).serialize();

<小时/> 更新:如果您只是想避免使用空的select标签,请执行以下操作。

var str = $(':input', form).filter(function(){
   return !($(this).is('select') && this.value.trim() == '');
}).serialize();