我有一个包含不同列的html表,我想检查我想要的列的多少个单元格(!= null或!=“”),我尝试了不同的东西,但没有任何作用
表格代码:
<table width="49%" border="1" align="left" cellspacing="0" id="table_left">
<tr id="left_tittle">
<td width="25%"><strong>Animal</strong>
</td>
<td width="25%"><strong>Hierro</strong>
</td>
<td width="35%"><strong>Clasificación</strong>
</td>
<td width="15%"><strong>Peso</strong>
</td>
</tr>
<tr>
<td>
<label for="textfield"></label> <span id="oAnimal">
<input name="anml" type="text" id="anml1" class="col1"
required oninvalid="this.setCustomValidity('Por favor entre el codigo del animal')"
style="width:96%" align="center"/>
<span class="textfieldRequiredMsg">Por favor entre el codigo del animal</span></span>
</td>
<td>
<label for="hierro"></label> <span id="oHierro">
<input name="hierro3" type="text" id="hierro1"
required oninvalid="this.setCustomValidity('Por favor entre el hierro del animal')"
style="width:96%" align="center" />
<span class="textfieldRequiredMsg">Por favor entre el hierro del animal</span></span>
</td>
<td>
<label for="clasificacion"></label> <span id="oCls">
<input name="clsf" type="text" id="clsf1"
required oninvalid="this.setCustomValidity('Por favor entre la clasificacion del animal')"
style="width:96%" align="center" />
<span class="textfieldRequiredMsg">Por favor entre la clasificacion del animal</span></span>
</td>
<td>
<label for="peso"></label> <span id="oPso">
<input name="pso" type="text" id="pso1" class="colPeso"
required oninvalid="this.setCustomValidity('Por favor entre el peso del animal')"
style="width:93%" align="center" />
<span class="textfieldRequiredMsg">Por favor entre el peso del animal</span></span>
</td>
</tr>
<tr>
<td>
<label for="textfield"></label>
<input name="animal" type="text" id="anml2" class="col1" style="width:96%"
align="center" />
</td>
<td>
<label for="hierro"></label>
<input name="hierro" type="text" id="hierro2" style="width:96%"
align="center" />
</td>
<td>
<label for="clasificacion"></label>
<input name="clasificacion" type="text" id="clsf2" style="width:96%"
align="center" />
</td>
<td>
<label for="peso"></label>
<input name="peso" type="text" id="pso2" class="colPeso" style="width:93%"
align="center" />
</td>
</tr>
<tr>
<td>
<label for="textfield"></label>
<input name="animal" type="text" id="anml3" class="col1" style="width:96%"
align="center" />
</td>
<td>
<label for="hierro"></label>
<input name="hierro" type="text" id="hierro3" style="width:96%"
align="center" />
</td>
<td>
<label for="clasificacion"></label>
<input name="clasificacion" type="text" id="clsf3" style="width:96%"
align="center" />
</td>
<td>
<label for="peso"></label>
<input name="peso" type="text" id="pso3" class="colPeso" style="width:93%"
align="center" />
</td>
</tr>
<tr>
<td>
<label for="textfield"></label>
<input name="animal" type="text" id="anml4" class="col1" style="width:96%"
align="center" />
</td>
<td>
<label for="hierro"></label>
<input name="hierro" type="text" id="hierro4" style="width:96%"
align="center" />
</td>
<td>
<label for="clasificacion"></label>
<input name="clasificacion" type="text" id="clsf4" style="width:96%"
align="center" />
</td>
<td>
<label for="peso"></label>
<input name="peso" type="text" id="pso4" class="colPeso" style="width:93%"
align="center" />
</td>
</tr>
<tr>
<td>
<label for="textfield"></label>
<input name="animal" type="text" id="anml5" class="col1" style="width:96%"
align="center" />
</td>
<td>
<label for="hierro"></label>
<input name="hierro" type="text" id="hierro5" style="width:96%"
align="center" />
</td>
<td>
<label for="clasificacion"></label>
<input name="clasificacion" type="text" id="clsf5" style="width:96%"
align="center" />
</td>
<td>
<label for="peso"></label>
<input name="peso" type="text" id="pso5" class="colPeso" style="width:93%"
align="center" />
</td>
</tr>
我的实际剧本
$('#table_left tr:not(#left_tittle)').bind('keyup change', function () {
var $table = $(this).closest('table');
var total = 0;
var count = 0;
$table.find('.colPeso:not(#left_tittle)').each(function () {
total += +$(this).val();
});
$table.find('.col1:not(#left_tittle)').each(function () {
if ($(this).html() != null) {
count = count + 1;
}
});
totalPesoL = total;
console.log("numero de animalesI: " + count);
//console.log( "total: " + total + " totalPesoL: " + totalPesoL);
//$table.find('input[name="total"]').val(total);
});
试图弄清楚如何使其工作的部分是:
$table.find('.col1:not(#left_tittle)').each(function () {
if ($(this).html() != null) {
count = count + 1;
}
或
$table.find('.col1').each(function () {
if ($(this).val() != null || $(this).val() != "" || $(this).val() != " ") {
count = count + 1;
}
});
由于某些原因,在我的控制台上,日志总是带有count变量= 20
col1是图片左侧的第一列,它只有3个单元格,并且值始终为20
答案 0 :(得分:1)
您正在寻找input
的内容,而不是某个块元素的html()
。
您想要的测试是:
if ($(this).val() != '') {
count = count + 1;
}
此外,您的选择器的:not
部分是不必要的:没有任何输入具有该ID。所以:
$table.find('.col1').each(
function() {
var v = $(this).val() || "";
if ( v.trim() != '' ){
count = count + 1;
}
}
);