我创建了一个脚本,用于隐藏包含特定单词的行,在我的情况下,该单词是“活动的”。现在问题是脚本只隐藏第一行而不是停止执行。所以基本上它可以工作,但在隐藏第一行后,它会停止执行。
欢迎任何建议
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<table id="myTable">
<tr id="my">
<td>1</td>
<td>11</td>
<td >active</td>
</tr>
<tr id="my">
<td>2</td>
<td>22</td>
<td>active</td>
</tr>
<tr id="my">
<td>4</td>
<td>44</td>
<td>inactive</td>
</tr>
<tr id="my">
<td>5</td>
<td>55</td>
<td>inactive</td>
</tr><tr id="my">
<td>6</td>
<td>66</td>
<td>active</td>
</tr>
<tr id="my">
<td>7</td>
<td>77</td>
<td>inactive</td>
</tr>
</table>
<script>
var oTable = document.getElementById('myTable');
var row = "active";
var count=0;
var rowLength = oTable.rows.length;
//document.writeln("no fo row in table"+rowLength);
for (var i = 0; i < rowLength; i++)
{
var oCells = oTable.rows.item(i).cells;
var cellLength = oCells.length;
//document.writeln(count);
count=count+1;
for(var j = 0; j < cellLength; j++)
{
var cellVal = oCells.item(j).innerHTML;
// document.writeln("table values"+cellVal);
if(cellVal==row)
{
document.getElementById('my').style.display = 'none';
document.writeln("table values"+count+"<br/>");
}
else
{
}
}
}
</script>
答案 0 :(得分:2)
$('#myTable tr').each(function() {
var st = $(this).find("td:last").html();
if(st!='active'){
$(this).hide();
}
});
答案 1 :(得分:1)
我建议,尽管你已经接受了答案:
$('#myTable tr').filter(function(){
return $(this).find('td:last-child').text().toLowerCase() === 'active';
}).hide();
关于你的进一步问题(在对另一个答案的评论中):
只有一个想法可以帮助我,如果有更多的话,如活动,启用,禁用我必须比较那么代码如何
我建议采用以下方法:
var states = {
'active' : {
'display' : 'none'
},
'inactive' : {
'color' : 'orange'
}
};
$('#myTable tr td:last-child').each(function(){
var that = this,
$that = $(that);
$that
.parent()
.css(states[$that.text().toLowerCase()] || '');
});