2017-04-18 9 views
2

ユーザがリストアイテムを選択すると、そのリストアイテムに関連付けられたテーブルが表示されます。私は脳のブロックを持っている、私はそれを解決するに近いと思うか、少なくとも方法のアイデアを。長さが互いに等しい場合は、それぞれの長さを見つけてから、表示/クリック機能を作成します。答えは、異なるテーブルを持つ何百ものリスト項目に使用できるものでなければなりません。リストアイテムをクリックすると、そのリストアイテムに関連するテーブルが表示されます

HTML

<div> 
      <ul> 
       <li id='one'><a href="#">number</a></li> 
       <li id='two'><a href="#">othernumber</a></li> 
      </ul> 
     </div> 
     <div> 
      <table> 
       <thead> 
        <tr> 
         <th>title</th><th>title</th><th>title</th><th>title</th> 
        </tr> 
       </thead> 
       <tbody id="table1"> 
        <tr> 
         <td>blah</td> 
         <td>blah</td> 
         <td>blah</td> 
         <td>blah</td> 
        </tr> 

       </tbody> 
       <tbody id="table2" style="display:none"> 
        <tr> 
         <td>blahTwo</td> 
         <td>blahTwo</td> 
         <td>blahTwo</td> 
         <td>blahTwo</td> 
        </tr> 
       </tbody> 
      </table> 
     </div> 

JS

function count(){ 
    var list = jQuery('ul li') 

    var table = jQuery('table tbody') 

    if(table.length == list.length){ 
     jQuery(list).click(function(){ 
      //show the table length that is equal to the list length 

     }) 
    } 
} 

jsfiddle

+2

行うことになって、あなたのJSのループのためには何ですか?最初の 'return'ステートメントはすぐに周囲の関数を終了します。あなたはループを必要としません、 'if(list.length === table.length)'と言うことができます。 *「ユーザーがリスト項目を選択したとき」* - あなたが求めているものではなく、マウスを使用していないユーザー(おそらく物理的にはできない人)があなたのページをどのように使用しますか? li要素でアンカーを使用して、キーボードやマウスから「クリック」できるようにする必要があります。 – nnnnnn

+0

ありがとう、私は質問を固定しました – userlkjsflkdsvm

+0

@userlkjsflkdsvmあなたのコードは私を混乱させるので、私は自分自身を書きました。それはあなたが必要とするような仕事ですか? http://jsbin.com/motoseyupa/edit?html,js,output – GONG

答えて

6

あなただけのリスト内の位置に基づいてのtbody要素にリスト項目を関連付けしたい場合は、利用することができます.index() methodと組み合わせて.eq()

var list = jQuery('ul li a') 
 
var table = jQuery('table tbody').hide() 
 
    
 
list.click(function(e) { 
 
    table.hide().eq(list.index(this)).show() 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div> 
 
    <ul> 
 
    <li id='one'><a href="#">number</a></li> 
 
    <li id='two'><a href="#">othernumber</a></li> 
 
    </ul> 
 
</div> 
 
<div> 
 
    <table> 
 
    <thead> 
 
     <tr> 
 
     <th>title</th> 
 
     <th>title</th> 
 
     <th>title</th> 
 
     <th>title</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody id="table1"> 
 
     <tr> 
 
     <td>blah</td> 
 
     <td>blah</td> 
 
     <td>blah</td> 
 
     <td>blah</td> 
 
     </tr> 
 

 
    </tbody> 
 
    <tbody id="table2" style="display:none"> 
 
     <tr> 
 
     <td>blahTwo</td> 
 
     <td>blahTwo</td> 
 
     <td>blahTwo</td> 
 
     <td>blahTwo</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

関連する問題