我有这个HTML表格,我需要查找.has_paises
是否有文字。例如,在下面的代码中,对于第一个tr
条件将为真,因为$(".has_paises").text()
应该返回某些文本但是对于第二个tr
条件将为false相同的代码将返回空或null或未定义或任何.text()
返回。
<table id="contenedorFabricantes" style="" class="table table-condensed">
<thead>
<tr class="tableHead">
<th><input type="checkbox" name="toggleCheckboxFabricantes" id="toggleCheckboxFabricantes"></th>
<th>Fabricante</th>
<th>Dirección</th>
<th>País</th>
<th>Teléfono</th>
</tr>
</thead>
<tbody id="fabricanteBody">
<tr>
<td><input type="checkbox" value="1"></td><td>Dist1</td>
<td>Direccion</td>
<td class="has_pais" id="td-1">Some text</td>
<td>999999</td>
<td><a data-backdrop="static" data-target="#addPaisesFabricante" data-toggle="modal" id="1" class="editable-pais" href="#"><i title="" data-placement="top" data-toggle="tooltip" class="fa fa-plus-circle" data-original-title="Agregar países"></i></a></td>
</tr>
<tr>
<td><input type="checkbox" value="1"></td><td>Dist2</td>
<td>Direccion</td>
<td class="has_pais" id="td-2"></td>
<td>999999</td>
<td><a data-backdrop="static" data-target="#addPaisesFabricante" data-toggle="modal" id="2" class="editable-pais" href="#"><i title="" data-placement="top" data-toggle="tooltip" class="fa fa-plus-circle" data-original-title="Agregar países"></i></a></td>
</tr>
</tbody>
</table>
我需要在tr
中遍历#fabricanteBody
,并查找至少有一个匹配的元素为空或 null 或< strong> undefined 如果这是真的那么将boolVar设置为true所以我稍后会检查我的代码,如果var是true或false,那么我想这样做:
var hasFab = $("#fabricanteBody").find(".has_pais"),
boolVar = false;
hasFab.forEach(function(value, index, array){
// check goes here and set boolVar goes here
});
但是,因为value不是jQuery对象,而是Javascript如何检查当前匹配元素的值是空的还是null或未定义并将boolVar
设置为true?此外,如果至少有一个.has_paises
为空,则无需检查其余部分,只需将boolVar
设置为true并继续执行代码,即从forEach
周期退出。有帮助吗?建议被接受用于改进我的代码,我想到了它并且我认为并不完美。
答案 0 :(得分:1)
您可以按文字过滤并检查集合是否具有长度,如果是,则包含没有文本的元素
var boolVar = $("#fabricanteBody").find(".has_pais").filter(function() {
return $.trim( $(this).text() ).length > 0;
}).length > 0;
答案 1 :(得分:0)
var boolVar = !$('#fabricanteBody .has_pais:empty').length;
答案 2 :(得分:0)
这使用.get()
让jQuery返回一个真正的数组,并.some()
迭代它。当回调返回true时,.some()
停止迭代。回调获取DOM元素内容,如果为null,未定义或为空字符串,则返回true。
var boolVar = $("#fabricanteBody .has_pais").get().some(function(el) {
var content = el.innerHTML; return !content && content !== 0;
});