2014-03-31 41 views
0

這是表我有我的觀點<tr>標記未創建新行?

@for (int i = 0; i < Model.AllCommonMatches.Length; i++) 
{ 
    <tr class="category"> 
     <td>//somestuff</td>   
     <td>//some stuff</td> 
     <td>//some stuff</td> 
    </tr> 
    <tr class="subcategory" style="display:none"> 
     @foreach (var person in Model.AllCommonMatches[i].AvailableAttendees) 
     { 

      <td>@person.Email &nbsp; &nbsp; @person.FirstName &nbsp;&nbsp;@person.LastName</td>  

     } 
    </tr> 
} 

而且沒有爲錶行的單擊事件

<script> 
    $(document).ready(function() { 
     $('.category').on('click', function() { 
      $(this).next('.subcategory').fadeToggle(); 
     }); 
    }); 
</script> 

每當錶行點擊,它擴展,並顯示一些數據

這裏是生成的Html

<tr class="subcategory" style=""> 
    <td>[email protected] &nbsp; &nbsp; &nbsp;&nbsp;</td> 
    <td>[email protected] &nbsp; &nbsp; &nbsp;&nbsp;</td> 
    <td>[email protected] &nbsp; &nbsp; &nbsp;&nbsp;</td> 
</tr> 

正如你所看到的那樣,日期之下有三個電子郵件地址。 我希望每封電子郵件都顯示爲單獨的行。所以,當點擊日期行時,每個電子郵件佔據整行。

這是我試過(puting <tr>標籤foreach語句中)

foreach (var person in somecase) 
{ 
    <tr> 
    <td>@person.Email &nbsp; &nbsp; @person.FirstName &nbsp;&nbsp;@person.LastName</td>  
    </tr> 
} 

但現在隨着日期行與單擊日期時,只顯示一行。 現在,當我點擊該行時,沒有任何反應。新行似乎不顯示電子郵件

+0

你的款式風格= 「顯示:無」=>將不會顯示 – cpoDesign

+0

是啊,但不應該的JavaScript表現出來?我得到一個表格行顯示,當有一個點擊,但多行不顯示 – Cybercop

+0

最好的是,如果你把它(http://jsfiddle.net/) – cpoDesign

回答

1

.next並選擇第二天DOM元素。我想你真正想要nextUntil

$(this).nextUntil('.category').fadeToggle(); 
+0

這沒有奏效。我添加了nextuntill但是當我點擊行時沒有出現。沒有控制檯錯誤 – Cybercop

+0

@ Biplov13告訴我你做了什麼,我看不出爲什麼它不會工作。 –

+0

我已將它添加爲編輯 – Cybercop

0

jQuery documentation中所述,next()獲取緊接着的兄弟姐妹。

意味着只有一個,而不是3

+0

那麼,我應該怎麼做才能顯示所有的元素呢? – Cybercop