Javascript 主干视图作为无序或有序html列表的一部分

Javascript 主干视图作为无序或有序html列表的一部分,javascript,html,css,backbone.js,Javascript,Html,Css,Backbone.js,我有一个问题-我有一个列表: <ol> <li>List item 1</li> <li>List item 2</li> </ol> 清单项目1 清单项目2 这部分是静态的,永远不会改变 另一个按钮将主干视图添加到此列表,而不对其进行分组 如你所知;您需要一个视图上的el标记,或者至少是一个根标记,因为我可能需要在此视图上进行进一步的事件捕获。我不能使用div标记,因为生成的html无效,这是: &l

我有一个问题-我有一个列表:

<ol>
    <li>List item 1</li>
    <li>List item 2</li>
</ol>

  • 清单项目1
  • 清单项目2
  • 这部分是静态的,永远不会改变

    另一个按钮将主干视图添加到此列表,而不对其进行分组

    如你所知;您需要一个视图上的el标记,或者至少是一个根标记,因为我可能需要在此视图上进行进一步的事件捕获。我不能使用div标记,因为生成的html无效,这是:

    <ol>
        <li>List item 1</li>
        <li>List item 2</li>
        <div class="myBackboneView">
            <li>List item for first component</li>
            <li>List item for second component</li>
        </div>
    </ol>
    
    
    
  • 清单项目1
  • 清单项目2
  • 第一个组件的列表项
  • 第二个组件的列表项
  • (在这些li中不能有div标签)

    有人知道我如何能够在不破坏html验证的情况下偷偷插入根标记吗

    或者是有一个主干技巧,允许您在不使用el的情况下将视图链接在一起

    我还希望能够添加任意数量的这些视图-因此我将根视图置于ol标记中,然后在该视图中,它将委托给每个li组的单个视图,因此问题是我无法放置标记来对这些li标记进行分组

    我知道你可能会认为这应该是一个单独的列表,但这是一个要做的事情的列表。如果他们添加了这个新视图,那么列表中还有更多的事情要做——因此,将其作为一个列表的一部分是有意义的

    谢谢你的帮助-我要去做肉丸了。

    试试这个:

    <ol>
        <li>List item 1</li>
        <li>List item 2</li>
        <li class="myBackboneView">
          <ol>
            <li>List item for first component</li>
            <li>List item for second component</li>
          <ol>
        </li>
    </ol>
    
    
    
  • 清单项目1
  • 清单项目2
  • 第一个组件的列表项
  • 第二个组件的列表项
  • 您还可以将
    class=“myBackboneView”
    放在内部
    ol
    上,您可以调用以将视图的
    el
    设置为已存在的特定元素:

    setElement
    view.setElement(element)

    如果要将主干视图应用于不同的DOM元素,请使用setElement,它还将创建缓存的
    $el
    引用,并将视图的委派事件从旧元素移动到新元素

    因此,您可以在方便的地方执行此操作(例如
    初始化
    渲染
    ):

    当然,您可能需要一个更具体的选择器

    演示:

    也可以在视图的定义中手动设置:

    el: 'ol' // Or a more specific selector
    

    演示:

    您可以将视图中的标记名属性更改为
    ol
    谢谢,我只希望能够将任意数量的视图添加到此列表中。我同意你的观点,有一个以列表为中心的视图,但理想情况下,我希望在根视图中有很多视图。我会更新我的问题,让它更清楚一点。你不能用
    来做这件事,因为你能放在
    中的唯一东西是
  • ,主干需要每个视图一个元素。不过,每个
  • 可以有一个视图。或者找一个比
    更灵活的元素。啊,好的,谢谢,如果没有其他解决方案,我会接受你的答案。特别是你最后的评论。问题是
    元素没有任何相似之处,因此你不能通过在
  • 之间滑动一些东西来对
  • 进行分组。但问题是,这将是一个单独的内部列表。理想情况下,我希望它成为一个列表。谢谢你。
    
    el: 'ol' // Or a more specific selector