1

ボタンをクリックしたときにテーブル内の特定の行を非表示にし、特定の行を保持したい。たとえば、「Fireベースのチャンピオンを表示」ボタンをクリックしました。Fire属性を持つチャンピオンのみが表示され、残りは(同じテーブルから)非表示になります。「水ベースのチャンピオンを表示」という別のボタンをクリックしました。このボタンは、水属性を持つチャンピオンのみを表示し、残りのボタンなどを非表示にし、他のボタンでも同じになります。誰でもそのためのコードを作ることができますか?私はJSの経験がありません。

メインテーブルは次のようになります(サンプルですが、テーブルの行はもっとたくさんあります)。

<table border="1" width="800">
<thead><tr>
    <th>Hero</th>
    <th>Class</th>
    <th>Offensive Skill</th>
    <th>Passive Skill</th>
    <th>Ultimate</th>
</tr></thead>
<tbody>
    <tr><td><a class="holy">Arcana</a></td>
    <td>the Arcane Manipulator</td>
    <td> - </td>
    <td> - </td>
    <td>Arcane Destroyer</td></tr>

    <tr><td><a class="fire">Azakiel</a></td>
    <td>the Blood Mage</td>
    <td> - </td>
    <td>Elf Blood</td>
    <td>Call of the Phoenix</td></tr>

    <tr><td><a class="wind">Bahamut</a></td>
    <td>the King of the Skies</td>
    <td> - </td>
    <td> - </td>
    <td>Mega Flare</td></tr>

    <tr><td><a class="dark">Carinblack</a></td>
    <td>the Dark Assailant</td>
    <td>Sword Bash</td>
    <td> - </td>
    <td>Blade of the Dark</td></tr>

    <tr><td><a class="earth">Dran</a></td>
    <td>the Steel Beast</td>
    <td>Rushing Tackle</td>
    <td> - </td>
    <td>Rolling Thunder</td></tr>

    <tr><td><a class="water">Fenrir</a></td>
    <td>the Water Emperor</td>
    <td>Water Barrage</td>
    <td> - </td>
    <td>Waterfall</td></tr>

    <tr><td><a class="thunder">Larza</a></td>
    <td>the Lightning Heroine</td>
    <td>Staff of Lightning</td>
    <td> - </td>
    <td>Storm Surge</td></tr>

    <tr><td><a class="thunder">Razor</a></td>
    <td>the Thunder Emperor</td>
    <td>Thunder Strike</td>
    <td> - </td>
    <td>Thunderstorm</td></tr>



4

1 に答える 1

2

使用show()してhide()

たとえば、[火ベースのチャンピオンを表示]をクリックした場合は、次のようにします。

$('tbody tr').hide() //Hide all rows
$('tbody tr:has(a.fire)').show() //Show all fire rows

これがすべてのコードを含むjsfiddleです

HTMLコード:

<html><head>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.0b1.js"></script>
<script type="text/javascript">

 function show(champ){
  $('tbody tr').hide()   
  $('tbody tr:has(a.'+champ+')').show()
 }


</script>


</head>
<body>
  <table border="1" width="800">
<thead><tr>
    <th>Hero</th>
    <th>Class</th>
    <th>Offensive Skill</th>
    <th>Passive Skill</th>
    <th>Ultimate</th>
</tr></thead>
<tbody>
    <tr><td><a class="holy">Arcana</a></td>
    <td>the Arcane Manipulator</td>
    <td> - </td>
    <td> - </td>
    <td>Arcane Destroyer</td></tr>

    <tr><td><a class="fire">Azakiel</a></td>
    <td>the Blood Mage</td>
    <td> - </td>
    <td>Elf Blood</td>
    <td>Call of the Phoenix</td></tr>

    <tr><td><a class="wind">Bahamut</a></td>
    <td>the King of the Skies</td>
    <td> - </td>
    <td> - </td>
    <td>Mega Flare</td></tr>

    <tr><td><a class="dark">Carinblack</a></td>
    <td>the Dark Assailant</td>
    <td>Sword Bash</td>
    <td> - </td>
    <td>Blade of the Dark</td></tr>

    <tr><td><a class="earth">Dran</a></td>
    <td>the Steel Beast</td>
    <td>Rushing Tackle</td>
    <td> - </td>
    <td>Rolling Thunder</td></tr>

    <tr><td><a class="water">Fenrir</a></td>
    <td>the Water Emperor</td>
    <td>Water Barrage</td>
    <td> - </td>
    <td>Waterfall</td></tr>

    <tr><td><a class="thunder">Larza</a></td>
    <td>the Lightning Heroine</td>
    <td>Staff of Lightning</td>
    <td> - </td>
    <td>Storm Surge</td></tr>

    <tr><td><a class="thunder">Razor</a></td>
    <td>the Thunder Emperor</td>
    <td>Thunder Strike</td>
    <td> - </td>
    <td>Thunderstorm</td></tr>
    </tbody>
</table>
<button onclick="show(&quot;fire&quot;)">Show fire</button>
<button onclick="show(&quot;water&quot;)">Show water</button>
<button onclick="show(&quot;thunder&quot;)">Show thunder</button>
<button onclick="show(&quot;dark&quot;)">Show dark</button>
<button onclick="show(&quot;earth&quot;)">Show earth</button>
<button onclick="show(&quot;holy&quot;)">Show holy</button>
<button onclick="show(&quot;wind&quot;)">Show wind</button>
<button onclick="$('tbody tr').show()  ">Show all</button>
</body></html>
于 2013-02-25T07:22:03.583 に答える