我正在研究一个小项目,并且我需要隐藏表行的功能,如果它们的td.icaoIata不包含正在输入栏中输入的字符串。 最重要的是,如果它们的data-属性位于Jquery滑块范围内,它们将被隐藏/显示。我工作的那部分,不应该是相关的。检查td是否包含文本?
基本上,如果找不到字符串,请隐藏该行。然后,一旦输入框被更新,再次检查,并隐藏/显示,如果仍然没有找到/发现。
我的烦恼主要是结合不同的功能,如find(),:contains等我无法一起工作。
我希望我很清楚。
任何人都可以指导我解决问题吗?
这是我的代码。 非常感谢!
<input type="text" name="search" class="form-control searchinput" ><br>
<div id="slider"></div>
<div id="slider-value-lower"></div>
<div id="slider-value-upper"></div>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Flight #</th>
<th>Departure</th>
<th>Arrival</th>
<th>Duration</th>
<th>Aircraft</th>
<th>Distance</th>
<th>Options</th>
</tr>
</thead>
<tbody class="schedules">
<tr class="schedulerow" data-duration="1.4">
<td><a href="">DLH1058</a></td>
<td class="icaoIata">Frankfurt Main <small>(EDDF)</small></td>
<td class="icaoIata">Cote D'Azur <small>(LFMN)</small></td>
<td> 1.4 h</td>
<td class="icaoIata">
A320
</td>
<td>386 nm</td>
<td>
<a href="" class="btn btn-success">Book</a>
</td>
</tr>
............
</tbody>
</table>
而我的JS
var slider = document.getElementById('slider');
noUiSlider.create(slider, {
connect: true,
start: [0,3],
step: 0.5,
tooltips: true,
range: {
'min': 0,
'max': 20
}
});
//initialize the values
$(".schedules").children().hide().filter(function() {
var duration = $(this).data('duration');
return duration >= 0 && duration <= 3;
}).addClass('is-shown').show();
$(".searchinput").keyup(function() {
var content = $(".searchinput").val();
//My mess was here....
});
slider.noUiSlider.on('change', function(values, handle) {
/*sliderValues[handle].innerHTML = values[handle];*/
filterRows(values[0], values[1]);
});
function filterRows(min, max) {
$(".schedules").children().removeClass('is-shown').hide().filter(function() {
var duration = $(this).data('duration');
return duration >= min && duration <= max;
}).addClass('is-shown').show();
}
所以,
其中'td.icaoIata'?我可以看到超过1个,如果我没有弄错 – guradio
请使用此插件尝试 https://datatables.net/ – Shibon
它应该搜索所有标记为icaoIata。 – user3237838