検索ボックスがある画像ギャラリーがあります。私は検索ボックスに入力すると、私は、検索がalt
属性にdata-title
属性、具体的すなわち「フィールドの素晴らしい眺め」とない上で行うことにしたいです。以下のコードは動作しますが、data-title
属性ではなく、タグのinnerHTML
を検索します。特定の属性のみを検索するにはどうすればよいですか。 JavaScriptを使用したタグのフィルタ検索属性
function myFunction() {
var input, filter, ul, li, a, i;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
ul = document.getElementById("gallery");
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("a")[0];
if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}
}
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for caption" title="Type in a name">
<ul id="gallery">
<li>
<a href="image/photos/01.jpg" data-lightbox="image-1" data-title="A Great view of fields"><img class="thumb" src="image/photos/thumbnails/01.jpg" alt="Field"></a>
</li>
<li>
<a href="image/photos/02.jpg" data-lightbox="image-1" data-title="We are close to the land"><img class="thumb" src="image/photos/thumbnails/02.jpg" alt="Sea"></a>
</li>
<li>
<a href="image/photos/03.jpg" data-lightbox="image-1" data-title="Great field for grazing cows."><img class="thumb" src="image/photos/thumbnails/03.jpg" alt="Green fields"></a>
</li>
あなたはinnerHTMLの中で実際に何があるかを確認しました?もしそうなら、共有してください。 –
'data-title'属性が' a'タグにあり、 'innerHTML'ではなく、' alt'属性が...属性の値を検索する場合は、属性の値を取得します。 –
'querySelectorAll'を試してみてください... https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll – nelek