Html帮助 - 嵌套的UL和LI

时间:2018-05-18 20:13:13

标签: html html5

我想实现这样的目标:

<li><a href="#">Item1</a>
                        <ul>
                            <li><a href="#">Item2</a></li>
                            <li>
                                <a href="#">Item3</a>
                                <ul>
                                    <li>
                                        <a href="#">Item4</a>
                                        <ul>
                                            <li>
                                                <a href="#">Item5</a>
                                                <ul>
                                                    <li>
                                                        <a href="#">Item6</a>
                                                        <ul>
                                                            <li> <a href="#">Item7</a> </li>
                                                        </ul>
                                                    </li>
                                                </ul>
                                            </li>
                                        </ul>
                                    </li>
                                </ul>
                            </li>
                            <li> <a href="#">Item8</a> </li>
                        </ul>
                    </li>

项目1等从字典中提取,字典可以根据用户输入进行更改。以下是我在视图中尝试使用MVC应用程序的内容:

    @foreach (var stp in Model.stepData)
{
        <li><a href="#">@stp.Key</a></li>
        <ul>
            @for (int i = 0; i < stp.Value.Count; i++)
    {
        <li><a href="#">@stp.Value[i]</a></li>

}
        </ul>
}

我知道我想添加&lt; ul&gt;在&lt;之前li>在@stp.Value循环..但是需要打开..结束标记需要在写入该迭代的最后一个之后。所以我认为可能是另一个循环输入标签..但这根本不起作用。我有可能在HTML中实现这一点吗? 我试过的代码:

@for (int i = 0; i < stp.Value.Count; i++)
    {
        <ul><li><a href="#">@stp.Value[i]</a></li>

}
@for(int i = 0; i<stp.Value.Count;i++){</ul>}

TIA求助。

尝试下面的答案,但得到它无法在循环中的当前上下文中找到listItems,并且当使用@for时,它还抱怨字符文字中的字符过多。

目标框架是.Net Core 2.0; MVC 5

2 个答案:

答案 0 :(得分:1)

这应循环显示stp.Value并返回包含在您的父li标记内的ul标记中的每个项目:

<ul id="myList">
    // stp.Value items here
</ul>

<script>
    var list = docment.getElementById('myList');
    var listItem = '';

    @for (int i = 0; i < stp.Value.Count; i++){
        listItem += '<li><a href="#">' + @stp.Value[i] + '</a></li>'
    }
    list.innerHTML = listItem;
</script>

大多数MVC框架都有自己的方法,但由于你没有指定使用哪个框架,以上是使用vanilla JS的一般方法。

答案 1 :(得分:0)

对上面的答案稍作修改,以便它适用于剃刀循环 : `

        
tabLayout.getTabAt(item.getItemId()).setText("Ds");

`