javascript - <tr> 标签没有创建新行?

标签 javascript jquery html css asp.net-mvc

这是我在 View 中的表

@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>biplov.cybercop@hotmail.com &nbsp; &nbsp;  &nbsp;&nbsp;</td>
    <td>yo@yo.com &nbsp; &nbsp;  &nbsp;&nbsp;</td>
    <td>foo@foo.com &nbsp; &nbsp;  &nbsp;&nbsp;</td>
 </tr>

如您所见,日期下方有三个电子邮件地址。 我希望每封电子邮件显示为单独的行。因此,当单击带有日期的行时,每封电子邮件占据一整行。

这是我尝试过的(将 <tr> 标记放在 foreach 语句中)

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

但是现在当点击带有日期的行时,它只显示一行。 当我单击该行时,现在什么也没有发生。新行似乎没有显示电子邮件

最佳答案

.next 并选择下一个 DOM 元素。我认为您实际上想要 nextUntil :

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

关于javascript - <tr> 标签没有创建新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22764235/

相关文章:

javascript - HTML5 pushState 跨浏览器支持

javascript - jQuery 触发元素的事件

javascript - AJAX 多图像 uploader 出错

javascript - 使用 jQuery/ajax 的基本身份验证

javascript - 有没有办法知道所有图像何时从服务器下载完毕?

python - 用漂亮的汤提取段落而不会产生多余的 html?

javascript - 为什么在 v8 源的 JS 文件中一些函数调用前面有一个 %?

Javascript日期转换毫秒到月、日、年

javascript - NodeJS 请求 POST Iconv

javascript - on() 和 off(),on() 立即触发,但我希望它像绑定(bind)或实时一样为 "act",这里出了什么问题?