Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 引导CSS表条带化,如果绑定,则不能使用敲除_Javascript_Html_Css_Twitter Bootstrap_Knockout.js - Fatal编程技术网

Javascript 引导CSS表条带化,如果绑定,则不能使用敲除

Javascript 引导CSS表条带化,如果绑定,则不能使用敲除,javascript,html,css,twitter-bootstrap,knockout.js,Javascript,Html,Css,Twitter Bootstrap,Knockout.js,假设我有下表,它与引导css和敲除一起工作: <table style="cursor:pointer;" class="table table-striped table-bordered table-hover table-condensed"> <tbody data-bind="foreach: items"> <tr> <td data-bind="text: name"></td&

假设我有下表,它与引导css和敲除一起工作:

<table  style="cursor:pointer;" class="table table-striped table-bordered table-hover table-condensed">
   <tbody data-bind="foreach: items">
         <tr>
            <td data-bind="text: name"></td>
         </tr>
         <tr data-bind="if: somecondition">
             <td>test</td>
         </tr>
   </tbody>

</table>

测试

现在,如果我将
“somecondition”
设置为返回
“true”
,我可以看到结果表中有斑马条纹。一切都很好。但是如果我将条件更改为“false”,很明显,行将从屏幕上消失,但我根本看不到任何交替的行颜色。有人知道我为什么以及如何制作所示的交替行颜色吗?

问题是,敲除不控制它所在的元素是否存在,只控制该元素的内容是否存在。(这在文档中可能没有那么清楚,但主要是在“注意:使用”if“而不使用容器元素”位中)。因此,示例中的
if
将控制
tr
的内容是否存在,但是
tr
无论如何都会存在,给您一个
tr
,其中绝对没有任何内容,这是引导条带化所做的
:n个子
工作的一部分,但不会占用任何垂直空间。(您可以通过呈现页面,然后右键单击表并在任何现代浏览器中使用“Inspect element”查看DOM中的实际内容来看到这一点。)

要根据条件使整行存在/不存在,请使用KO包裹该行:


测试
未正确条带化的原始代码示例:


使用虚拟元素,正确条带化的示例:

只需从您的表中删除t body标记,即可顺利工作

<!-- ko: if: somecondition -->
<tr>
    <td>test</td>
</tr>
<!-- /ko -->