2017-11-22 7 views
0

"大陸"(親カテゴリ)も同様にフィルタリングするために、 "国"(サブカテゴリ)のリストをフィルタリングすることは可能ですか?Javascriptどのようにカテゴリとサブカテゴリでリストをフィルタリングする

たとえば、「中国」を検索すると、同時にその上に「アジア」フィルタが付いています。

「親カテゴリ」を検索する際には、「サブカテゴリ」の表示もしたいと思っています。たとえば、「アジア」を検索する場合、「中国」、「日本」、「韓国」をフィルタリングしたいと考えています。

これは、2つの列でフィルタリングされたテーブルを作成する方が現実的でしょうか?

<!DOCTYPE html> 
<html> 
<head> 
<style> 
* { 
    box-sizing: border-box; 
} 

body { 
    font-family: Arial; 
} 

#myInput { 
    background-position: 10px 12px; 
    background-repeat: no-repeat; 
    width: 100%; 
    font-size: 16px; 
    padding: 12px 20px 12px 12px; 
    border: 1px solid #ddd; 
    margin-bottom: 12px; 
} 

#myUL { 
    list-style-type: none; 
    padding: 0; 
    margin: 0; 
} 

#myUL li a { 
    border: 1px solid #ddd; 
    margin-top: -1px; 
    background-color: #f6f6f6; 
    padding: 12px; 
    text-decoration: none; 
    font-size: 14px; 
    color: black; 
    display: block 
} 

#myUL li a:hover:not(.header) { 
    background-color: #eee; 
} 
</style> 
</head> 
<body> 
<h2>Countries</h2> 

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search 
for countries.." title="Type in a country"> 

<ul id="myUL"> 
<li><a href="#"><strong>Asia</strong></a></li> 
<li><a href="#">China</a></li> 
<li><a href="#">Japan</a></li> 
<li><a href="#">South Korea</a></li> 

<li><a href="#"><strong>Europe</strong></a></li> 
<li><a href="#">France</a></li> 
<li><a href="#">Germany</a></li> 
<li><a href="#">United Kingdom</a></li> 

<li><a href="#"><strong>North America</strong></a></li> 
<li><a href="#">Canada</a></li> 
<li><a href="#">Mexico</a></li> 
<li><a href="#">United States</a></li> 

<li><a href="#"><strong>South America</strong></a></li> 
<li><a href="#">Argentina</a></li> 
<li><a href="#">Brazil</a></li> 
<li><a href="#">Chile</a></li> 
</ul> 

<script> 
function myFunction() { 
    var input, filter, ul, li, a, i; 
    input = document.getElementById("myInput"); 
    filter = input.value.toUpperCase(); 
    ul = document.getElementById("myUL"); 
    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"; 

     } 
    } 
} 
</script> 
</body> 
</html> 

答えて

0

現在のところ、地域を区別する実際の方法はありません。

function ShowAsia(){ 
 
    $(".asia").toggle(); 
 
} 
 

 
function ShowEurope(){ 
 
    $(".europe").toggle(); 
 
}
li {list-style:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
<li><a href="#" class='asia' style="display: inline;">China</a></li> 
 
<li><a href="#" class='asia' style="display: inline;">Japan</a></li> 
 
<li><a href="#" class='asia' style="display: inline;">South Korea</a></li> 
 

 
<li><a href="#" class='europe' style="display: inline;">France</a></li> 
 
<li><a href="#" class='europe' style="display: inline;">Germany</a></li> 
 
<li><a href="#" class='europe' style="display: inline;">United Kingdom</a></li> 
 

 
</ul> 
 

 
<button type="button" onclick='ShowAsia()'>Show Asia</button> 
 
<button type="button" onclick='ShowEurope()'>Show Europe</button>

:私はそれのオフを選択し、必要に応じてHTMLにプロパティを追加したいです
関連する問題