【发布时间】:2014-11-08 05:25:15
【问题描述】:
当用户单击 V 形(按钮)时,我希望 jquery 隐藏所有不包含 V 形内文本的表行。
我尝试了一些代码,发布在下面,但它不起作用。
代码:
$(function () {
$('#chevrons > ul > li > a').click( function(){
$('#chevrons .selected').not(this).removeClass('selected');
$('#show-all').removeAttr("style");
$(this).toggleClass('selected');
});
var $chev = $(this).text();
var $rowsNo = $('#sales-opportunities tbody tr').filter(function () {
return $.trim($(this).find('td').eq(4).text()) === $chev
}).toggle();
});
$(function () {
$('#show-all').click( function(){
$('#chevrons .selected').removeClass('selected');
$(this).css('color', '#FECF2A');
});
});
精简的 HTML:
<div class="col-lg-12">
<div id="chevrons">
<ul>
<li><a href="#" onclick="return false;">Prospect</a></li>
<li><a href="#" onclick="return false;">Qualifying</a></li>
<li><a href="#" onclick="return false;">Demonstrating</a></li>
<li><a href="#" onclick="return false;">Negotiating</a></li>
<li><a href="#" onclick="return false;">
Closed
</a></li>
<li id="dormant"><a href="#" onclick="return false;">Dormant
</a></li>
</ul>
</div>
</div>
<div class="navbar-collapse collapse" id="bs-example-navbar-collapse-2" style="height: 1px;">
<ul class="nav navbar-nav navbar-right">
<li>
<a href="#" onclick="return false;" id="show-all">Show All Opportunities</a>
</li>
</ul>
</div>
<div class="table-responsive">
<table class="table table-striped display responsive no-wrap dataTable no-footer dtr-inline" id="sales-opportunities" role="grid" aria-describedby="sales-opportunities_info">
<thead>
<tr role="row"><th class="sorting_asc" tabindex="0" aria-controls="sales-opportunities" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Opportunity Name: activate to sort column descending" style="width: 235px;">Opportunity Name</th><th class="sorting" tabindex="0" aria-controls="sales-opportunities" rowspan="1" colspan="1" aria-label="Company: activate to sort column ascending" style="width: 120px;">Company</th><th class="sorting" tabindex="0" aria-controls="sales-opportunities" rowspan="1" colspan="1" aria-label="Value: activate to sort column ascending" style="width: 117px;">Value</th><th class="sorting" tabindex="0" aria-controls="sales-opportunities" rowspan="1" colspan="1" aria-label="Close Date: activate to sort column ascending" style="width: 181px;">Close Date</th><th class="sorting" tabindex="0" aria-controls="sales-opportunities" rowspan="1" colspan="1" aria-label="Pipeline Status: activate to sort column ascending" style="width: 185px;">Pipeline Status</th><th class="sorting" tabindex="0" aria-controls="sales-opportunities" rowspan="1" colspan="1" aria-label="Action: activate to sort column ascending" style="width: 90px;">Action</th></tr>
</thead>
<tbody>
<tr role="row" class="odd">
<td class="sorting_1"><a href="/sales_opportunities/20">Product for China</a></td>
<td><a href="/companies/99">China</a></td>
<td>$100,000.00</td>
<td>Wed, 19 Nov 2014</td>
<td>Closed won</td>
<td>
<div class="btn-group">
<a class="btn btn-sm btn-warning" href="/sales_opportunities/20/edit">edit</a>
</div>
</td>
</tr><tr role="row" class="even">
<td class="sorting_1"><a href="/sales_opportunities/21">Another product for China</a></td>
<td><a href="/companies/99">China</a></td>
<td>$35,000.00</td>
<td>Thu, 27 Nov 2014</td>
<td>Demonstrating</td>
<td>
<div class="btn-group">
<a class="btn btn-sm btn-warning" href="/sales_opportunities/21/edit">edit</a>
</div>
</td>
</tr></tbody>
</table>
</div>
</div>
</div>
</div>
</div>
我借用了代码来隐藏这个 stackoverflow 答案中的行:hide row based on column value - 虽然我知道这会与我要求的相反(即这会隐藏我的雪佛龙中包含文本的行)它实际上并没有在我的页面上做任何事情。
我做错了什么?
【问题讨论】:
-
如果您将类添加到行(如潜在客户/合格等)会容易得多,这意味着您的人字形将为行创建类,并且单击时您将采用 chevron innerHtml 并隐藏所有行期望你的 chevron HTML 的类
-
您需要精确的文本或包含?
标签: javascript jquery html