Javascript jQuery:selectdivs,其中所有selectinside都没有0值
我有以下html结构:Javascript jQuery:selectdivs,其中所有selectinside都没有0值,javascript,jquery,Javascript,Jquery,我有以下html结构: <div class="subform_uploading" id="subform1"> <select class="form_file"> <option value="0">Select file</option> <option value="file1">file1</option> ... <option va
<div class="subform_uploading" id="subform1">
<select class="form_file">
<option value="0">Select file</option>
<option value="file1">file1</option>
...
<option value="file10">file10</option>
<select>
<select class="form_title">
<option value="0">Select Title</option>
<option value="title1">title1</option>
...
<option value="title10">title10</option>
<select>
</div>
...
<div class="subform_uploading" id="subform5">
<select class="form_file">
<option value="0">Select file</option>
<option value="file1">file1</option>
...
<option value="file10">file10</option>
<select>
<select class="form_title">
<option value="0">Select Title</option>
<option value="title1">title1</option>
...
<option value="title10">title10</option>
<select>
</div>
选择文件
文件1
...
文件10
选择标题
标题1
...
标题10
...
选择文件
文件1
...
文件10
选择标题
标题1
...
标题10
我喜欢使用jQuery获得的是“subform\u uploading”类中的div元素数,其中两个select值都不等于0。请尝试类似的过滤器
$('button').click(function () {
var $els = $('.subform_uploading').filter(function () {
return $(this).find('select').filter(function () {
return $(this).val() == 0
}).length == 0;
});
console.log($els, $els.length)
})
演示:我不确定是否有办法使用一行jquery选择器。 不过,此函数将返回您想要的内容 演示:
您只需将每个
中的
元素数与每个
中的
元素数进行比较,其中值不是0
:
var numDivs = $('div.subform_uploading').filter(function() {
var $this = $(this),
$select = $this.find('select');
return $select.length == $select.filter(function() { return this.value != 0 }).length;
}).length;
谢谢你的回复。但据我所知,它输出两个select元素都为0的div数。我需要div的数量,其中两个select都不等于0。
function getDivs () {
var outDivs = [];
var divs = $('div.subform_uploading');
divs.each (function ( ) {
var sels = $(this).find ('select option[value!="0"]:selected');
if (sels.length == 2) {
outDivs.push ( $(this) );
}
});
return outDivs;
}
var numDivs = $('div.subform_uploading').filter(function() {
var $this = $(this),
$select = $this.find('select');
return $select.length == $select.filter(function() { return this.value != 0 }).length;
}).length;