我的html页面中有这样的表格
<table id="mytable">
<tr id="classified">
<td>1</td>
</tr>
<tr id="unclassified">
<td>0</td>
</tr>
</table>
所以,在document.ready上我想检查哪个列有0值,如果值为o则隐藏该行,
我已经编写了这段代码,但似乎无法正常工作
$(document).ready(function IsValidTableContent() {
$('#mytable tr td').each(function () {
if ($(this).val() == 0) {
$(this).hide();
} else {
$(this).show();
}
});
});
答案 0 :(得分:5)
您可以使用:contains()
找到td
:
$("#mytable td:contains(0)");
小提琴:http://jsfiddle.net/UCgSL/
如果您有其他单元格包含0但不完全等于0,:contains
也将包括匹配中的单元格。这意味着100
或1,000
也可能会显示,因为包含 0
。如果您只想要那些值为0
且没有其他内容的人,则应考虑使用过滤器:
$("#mytable td").filter(function(){
return $(this).text() == 0;
});
小提琴:http://jsfiddle.net/UCgSL/1/
如果使用.filter
过于冗长,您可以滚动自己的过滤器选择器:
$.expr[":"].exactly = function( e, i, m ) {
return $(e).text() == m[3];
};
$("#mytable td:exactly(0)");
答案 1 :(得分:1)
假设您不想再返回10,这是一个解决方案:
$("#mytable td").each(function() {
var $this = $(this);
if ($this).text()!="0") $this.show();
else $this.hide();
});
答案 2 :(得分:1)
您好,请检查 DEMO 我认为您真正想要的是
答案 3 :(得分:0)
val()
。
您可以使用$(this).text()
,但返回的值是字符串,因此您必须在比较之前在int中解析它。