我正在研究一個小項目,並且我需要隱藏錶行的功能,如果它們的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