#jquery #asp-classic #ado
#jquery #asp-classic #ado
Вопрос:
У меня есть вывод базы данных из набора записей в таблицу, подобную этой:
Response.Write "<TR class=data>"
For i = 0 to rs.Fields.Count
if i < 4 then
if i = 0 or i = 1 or i = 2 then
response.Write "<td align=center>" amp; rs.Fields(i) amp; "</td>"
else
response.Write "<td align=center class="amp;rs.Fields(i)amp;"><div id=thisone>" amp; rs.Fields(i) amp; "</div></td>"
end if
end if
Next
Response.write "</TR>"
Как вы можете видеть, я настроил имя класса, равное 4-му элементу в строке (в данном случае, имени пользователя). Что я хотел бы сделать, так это скрыть все строки с одинаковым именем пользователя, если конечный пользователь щелкает в любом месте строки.
пока что у меня есть это:
<script>
var username;
$(document).ready(function(){
$("TR.data").click(function () {
username = $(this).find('td:last').text();
alert(username);
$(this).each(function(object){
if($(this).find('td:last').text() == username){
object.hide();
}
});
});
});
</script>
Я могу сохранить имя пользователя правильно, но когда я пытаюсь выполнить итерацию по таблице, чтобы найти другие строки с этим именем пользователя, я, похоже, не могу их скрыть. Я думаю, возможно, мне нужно использовать метод parent (), но все, что я пробовал, потерпело неудачу.
Приветствуется любая помощь. Спасибо.
Ответ №1:
попробуйте это:
$("TR.data").click(function () {
var username = $(this).find('td:last').text();
$("TR.data:contains('" username "')").hide();
});
Комментарии:
1. Еще один отличный ответ. Я не знал о методе contains(). Очень признателен!
2. ах! новинка на сайте. я не знал как.
3. для тех, кто хочет сделать обратное (например: щелкнуть строку и заставить все ОСТАЛЬНЫЕ строки исчезнуть), вы можете использовать метод «not()». Вот пример, который я использовал: $ («TR.data»).not(«:содержит(» имя пользователя «)»).fadeOut(500);
Ответ №2:
Попробуйте это:
$('.yourclass').css('display', 'none');
Это позволит найти все элементы с заданным именем класса и применить к каждому из них стиль display: none.
Комментарии:
1. Идеально! Единственное, что мне пришлось изменить, это добавить .parent() перед css, потому что он скрывал только <td>, а не всю строку целиком. Определенно проще, чем то, что я пытался. Большое спасибо!
2. вместо того, чтобы выполнять parent() Я предпочитаю .closest(‘tr’), таким образом, вы всегда знаете, что будете скрывать строку, независимо от того, что было выбрано