を使用して私はdata-tag="Novel"
を持っています。 「Novel」チェックボックスをチェックすると、data-tag
属性に「Novel」を含む書籍が表示されます。現在のところ、javascript/Jqueryの一部はdata-tag
で動作しますが、複数の値ではなく1つの値が含まれています。どのように私はそれが、例えばそのdata-tags
はそれぞれdata-tag="Fiction,Novel"
とdata-tag="Non-Fiction,Novel"
であり、i「は小説」のチェックボックスにチェックを入れたときに、それは本の両方が表示されますか、私は「フィクション」のチェックボックスにチェックを入れたときにのみ表示されますそのうち2冊があることを確認することができます書籍にはdata-tag
属性の「Fiction」が含まれています。PHP - AJAXのチェックボックスフィルタデータ・タグ属性
Javascriptを/ jQueryの
$(document).ready(function(){
$('.genre').on('change', function(){
var genreList = [];
$('#filterContainer :input:checked').each(function(){
var genre = $(this).val();
genreList.push(genre);
});
if(genreList.length == 0)
$('.blItem').fadeIn();
else {
$('.blItem').each(function(){
var item = $(this).attr('data-tag');
items = item.split(',');
if(jQuery.inArray(item,genreList) > -1)
$(this).fadeIn('slow');
else
$(this).hide();
});
}
});
});
HTML
<div id="filterContainer">
<div class="filter">
<input id="check1" type="checkbox" name="check" value="Novel" class="genre">
<label for="check1">Novel</label>
</div>
<div class="filter">
<input id="check2" type="checkbox" name="check" value="Fiction" class="genre">
<label for="check2">Fiction</label>
</div>
<div class="filter">
<input id="check3" type="checkbox" name="check" value="Non-Fiction" class="genre">
<label for="check3">Non-Fiction</label>
</div>
</div>
<div class="booksList in fade">
<?php
while($result = mysqli_fetch_array($query))
{
$title = $result['title'];
$title = preg_replace('/[^A-Za-z0-9]/', "", $title);
$html = '<div class="blItem" data-tag="' . $result['genre'] . '">
<a class="blMask jt" href="readBooks.php?title=' . $title . '&id=' . $result['id'] . '">
<img data-original="' . $result['imageURL'] . '"
class="lazy thumb blThumb"
alt="">
</a>
</div>';
echo $html;
}
?>
</div>
あなたのコードでは何が動作していないのですか? – Aleeeeee
@Alessandro Niciforo 'data-tag'属性の単一の値に対しては機能しますが、複数の値を扱うことはできません。 – ModestGrey