有没有办法在Javascript中切换ul和ol?

有没有办法在Javascript中切换ul和ol?,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我遇到了动态创建列表(ol或ul)的问题。我面临的问题是,有时我需要有序列表,有时需要根据JSON取消排序。我正在使用knockout,这是我的html <ol data-bind="foreach: items" ><li><a data-bind="text: $data"></a></li></ol> 您可以看到orderedList可能是true或false。如果为真,我需要使用ol,如果为假,我需要使用ul。我还

我遇到了动态创建列表(ol或ul)的问题。我面临的问题是,有时我需要有序列表,有时需要根据JSON取消排序。我正在使用knockout,这是我的html

<ol data-bind="foreach: items" ><li><a data-bind="text: $data"></a></li></ol>

您可以看到orderedList可能是true或false。如果为真,我需要使用ol,如果为假,我需要使用ul。我还希望避免复制。任何方法都可以做到这一点。

这是我放在一起的一个粗糙样本,无法测试它。但是你可以得到这个想法

<!-- ko if : orderedList -->
<ol>
<!-- /ko -->
<!-- ko ifnot : orderedList -->
<ul>
<!-- /ko -->
<!-- ko foreach: items -->
<li><a data-bind="text: $data"></a></li>
<!-- /ko -->
<!-- ko if : orderedList -->
</ol>
<!-- /ko -->
<!-- ko ifnot : orderedList -->
</ul>
<!-- /ko -->

编辑:淘汰中没有if-else条件。因此,您必须依赖于使用多个Ko-if语句

EDIT2:用于OP的代码版本

<!-- ko if : orderedList -->
<ol data-bind="foreach: items">
    <li><a data-bind="text: $data"></a></li>
</ol>
<!-- /ko -->
<!-- ko ifnot : orderedList -->
<ul data-bind="foreach: items">
    <li><a data-bind="text: $data"></a></li>
</ul>
<!-- /ko -->


    使用无容器绑定生成ul/ol标记,也可用于您的foreach@ryadavilli例如,从视觉上看,
    ul
    ol
    之间的唯一区别是css
    列表样式类型
    。还可以通过设置
    decimal
    ul
    中的项目进行编号,以便您可以根据data@charlietfl,问题是ul不能被编号,ol不能是子弹。是的,他们可以,这是用简单的css完成的…见演示:你的代码给我错误否,'在哪个位置找不到要匹配的结束注释标记:ko if:orderedList'?这是ko-if的首次使用吗?还是第二个?谢谢你的主意。我已使用“请编辑您的答案”解决了此问题,很高兴知道它有效。至少是它的一个变体。我能够删除错误,但仍在与我给出的代码斗争。
    <!-- ko if : orderedList -->
    <ol data-bind="foreach: items">
        <li><a data-bind="text: $data"></a></li>
    </ol>
    <!-- /ko -->
    <!-- ko ifnot : orderedList -->
    <ul data-bind="foreach: items">
        <li><a data-bind="text: $data"></a></li>
    </ul>
    <!-- /ko -->