gpt4 book ai didi

javascript - 如何隐藏/显示基于数组的元素?

转载 作者:行者123 更新时间:2023-11-30 19:23:31 26 4
gpt4 key购买 nike

我需要根据用户选择的标签过滤表格中的行。

我使用标签数组来定位行的类别,我试图隐藏 sibling 但它不起作用,如果有不止一行,它会隐藏所有内容,如果用户删除一个标签,我需要重新显示其他行,但我没能找到如何做到这一点。

(function($, root, undefined) {

$(function() {

'use strict';

// Disponibilités

$('.ui.dropdown').dropdown();

$('.dropdown').on('click', function(e) {
var filters = $("input[name='filters']").val();
var arrayFilters = filters.split(',');
if (filters) {
$.each(arrayFilters, function(index, value) {
$('.' + value).siblings().hide();
});
} else {
$('.uniteRow').show();
}
});

});

})(jQuery, this);
<!DOCTYPE html>
<html>

<head>
<style>
table td {
padding: 5px;
}
</style
</head>

<body>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.2/semantic.min.css" rel="stylesheet" type="text/css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.2/semantic.min.js"></script>


<div class="filters">
<div class="ui multiple dropdown">
<input type="hidden" name="filters">
<i class="filter icon"></i>
<span class="text">Filter les résultats</span>
<div class="menu">
<div class="divider"></div>
<div class="header">
Disponibilité
</div>
<div class="scrolling menu">
<div class="item" data-value="disponiblebientot">
Disponible bientôt
</div>
<div class="item" data-value="juillet2020">
Juillet 2020
</div>
<div class="item" data-value="loue">
Loué
</div>
</div>
<div class="divider"></div>
<div class="header">
Pièces
</div>
<div class="scrolling menu">
<div class="item" data-value="pieces3">
3 ½
</div>
<div class="item" data-value="pieces4">
4 ½
</div>
<div class="item" data-value="pieces5">
5 ½
</div>
</div>
</div>
</div>
</div>

<table class="disponibilites">
<tbody>
<tr>
<td></td>
<td>Pièces</td>
<td>Disponibilité</td>
</tr>
<tr class="uniteRow loue pieces4">
<td>101</td>
<td>4½</td>
<td>Loué</td>
</tr>
<tr class="uniteRow disponiblebientot pieces4">
<td>102</td>
<td>4½</td>
<td>Disponible bientôt</td>
</tr>
<tr class="uniteRow loue pieces4">
<td>103</td>
<td>4½</td>
<td>Loué</td>
</tr>
<tr class="uniteRow loue pieces3">
<td>104</td>
<td>3½</td>
<td>Loué</td>
</tr>
<tr class="uniteRow loue pieces3">
<td>105</td>
<td>3½</td>
<td>Loué</td>
</tr>
<tr class="uniteRow juillet2020 pieces3">
<td>106</td>
<td>3½</td>
<td>Juillet 2020</td>
</tr>
<tr class="uniteRow juillet2020 pieces4">
<td>718</td>
<td>4½</td>
<td>Juillet 2020</td>
</tr>
</tbody>
</table>

</body>

</html>

所以我只想显示该类在 arrayFilters 中的行,并隐藏那些不存在的行,并且我希望它在每次选择/取消选择标签时更新。

最佳答案

所以我修改了我的代码以循环遍历行而不是数组,并将数据值更改为类以使用 .is()

我检查每行是否在过滤器中有一个类并显示它,如果没有类与过滤器匹配则隐藏该行。

(function ($, root, undefined) {

$(function () {

'use strict';

// Disponibilités

$('.ui.dropdown').dropdown();

$('.dropdown').on('click', function(e) {
var filters = $( "input[name='filters']" ).val();
if(filters) {
$('.uniteRow').each(function (index, value) {
if($(this).is(filters)) {
$(this).show();
} else {
$(this).hide();
}
});
} else {
$('.uniteRow').show();
}
});

});

})(jQuery, this);
<!DOCTYPE html>
<html>

<head>
<style>
table td {
padding: 5px;
}
</style
</head>

<body>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.2/semantic.min.css" rel="stylesheet" type="text/css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.2/semantic.min.js"></script>


<div class="filters">
<div class="ui multiple dropdown">
<input type="hidden" name="filters">
<i class="filter icon"></i>
<span class="text">Filter les résultats</span>
<div class="menu">
<div class="divider"></div>
<div class="header">
Disponibilité
</div>
<div class="scrolling menu">
<div class="item" data-value=".disponiblebientot">
Disponible bientôt
</div>
<div class="item" data-value=".juillet2020">
Juillet 2020
</div>
<div class="item" data-value=".loue">
Loué
</div>
</div>
<div class="divider"></div>
<div class="header">
Pièces
</div>
<div class="scrolling menu">
<div class="item" data-value=".pieces3">
3 ½
</div>
<div class="item" data-value=".pieces4">
4 ½
</div>
<div class="item" data-value=".pieces5">
5 ½
</div>
</div>
</div>
</div>
</div>

<table class="disponibilites">
<tbody>
<tr>
<td></td>
<td>Pièces</td>
<td>Disponibilité</td>
</tr>
<tr class="uniteRow loue pieces4">
<td>101</td>
<td>4½</td>
<td>Loué</td>
</tr>
<tr class="uniteRow disponiblebientot pieces4">
<td>102</td>
<td>4½</td>
<td>Disponible bientôt</td>
</tr>
<tr class="uniteRow loue pieces4">
<td>103</td>
<td>4½</td>
<td>Loué</td>
</tr>
<tr class="uniteRow loue pieces3">
<td>104</td>
<td>3½</td>
<td>Loué</td>
</tr>
<tr class="uniteRow loue pieces3">
<td>105</td>
<td>3½</td>
<td>Loué</td>
</tr>
<tr class="uniteRow juillet2020 pieces3">
<td>106</td>
<td>3½</td>
<td>Juillet 2020</td>
</tr>
<tr class="uniteRow juillet2020 pieces4">
<td>718</td>
<td>4½</td>
<td>Juillet 2020</td>
</tr>
</tbody>
</table>

</body>

</html>

关于javascript - 如何隐藏/显示基于数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57187621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com