#javascript #html #jquery #css
#javascript #HTML #jquery #css
Вопрос:
Я хочу искать изображения из таблицы, используя ее атрибут alt, и отображать всю строку с помощью javascript или jquery.
<div class="input-group">
<span class="input-group-addon">Filter</span>
<input id="filter" type="text" class="form-control" placeholder="Search Airline here">
</div>
<table class="customTable">
<thead>
<tr>
<th>Airline</th>
<th>Authorized Laboratories</th>
<th>Duration for PCR before flight</th>
</tr>
</thead>
<tbody>
<tr>
<td><img src="http://www.timestravel.com/images/airlines/EY.png" alt="etihad" width="174" border="0" style="display:block; margin-left: auto; margin-right: auto; width: 70%;" /></td>
<td>
<ul>
<li>Chughtai Lab</li>
<li>Agha Khan Laboratory</li>
<li>Shaukat Khanum</li>
<li>Dr Essa Labroratory</li>
<li>Islamabad Diagnostic Center</li>
<li>Excel Lab</li>
</ul>
</td>
<td>96 Hours</td>
</tr>
каким может быть его javascript или jquery?
Ответ №1:
Попробуйте приведенный ниже код.
$("#filter").on("keyup", function() {
var q = $(this).val();
if(q == '') {
$(".customTable").find("tbody tr").removeClass("hidden");
} else {
$(".customTable").find("tbody tr img").each(function() {
if($(this).attr("alt").indexOf(q) == -1) {
$(this).closest('tr').addClass("hidden");
}
});
}
});
.hidden {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="input-group"> <span class="input-group-addon">Filter</span>
<input id="filter" type="text" class="form-control" placeholder="Search Airline here">
</div>
<table class="customTable" border="1">
<thead>
<tr>
<th>Airline</th>
<th>Authorized Laboratories</th>
<th>Duration for PCR before flight</th>
</tr>
</thead>
<tbody>
<tr>
<td><img src="http://www.timestravel.com/images/airlines/EY.png" alt="etihad" width="174" border="0" style="display:block; margin-left: auto; margin-right: auto; width: 70%;" /></td>
<td>
<ul>
<li>Chughtai Lab</li>
<li>Agha Khan Laboratory</li>
<li>Shaukat Khanum</li>
<li>Dr Essa Labroratory</li>
<li>Islamabad Diagnostic Center</li>
<li>Excel Lab</li>
</ul>
</td>
<td>96 Hours</td>
</tr>
<tr>
<td><img src="http://www.timestravel.com/images/airlines/EY.png" alt="Emirates" width="174" border="0" style="display:block; margin-left: auto; margin-right: auto; width: 70%;" /></td>
<td>
<ul>
<li>Chughtai Lab</li>
<li>Agha Khan Laboratory</li>
<li>Shaukat Khanum</li>
<li>Dr Essa Labroratory</li>
<li>Islamabad Diagnostic Center</li>
<li>Excel Lab</li>
</ul>
</td>
<td>96 Hours</td>
</tr>
</tbody>
</table>
Комментарии:
1. можно ли это сделать со всем текстом от td до b, который также был найден? погода в верхнем или нижнем классе с атрибутами alt также остается доступной для поиска?
2. Да, вы можете использовать
:contains()
селектор jQuery для сопоставления текстаtd
. w3schools.com/jquery/sel_contains.asp