为什么TR不能成为JsViews中TABLE的直接子代?

时间:2013-05-15 15:52:28

标签: jsrender jsviews

我使用JsRender和一堆嵌套表创建了一个复杂的模板。现在我正在转换到使用JsViews,以便我可以利用数据绑定+增量DOM更新(这样我就不必重新渲染整个模板)。但是,我收到了一个有趣的错误:

screen-shot-of-error

如果我确保每个tr都在thead,tbody或tfoot中,只要tr不是表的直接子项,这个问题就会消失。所以我的问题是:JsViews的这个设计决定来自哪里?为什么要施加这种约束?

提前致谢。

jsviews.js:83 badParent = {tr: "table"}

1 个答案:

答案 0 :(得分:1)

是的,正如JcFx在评论中所说的那样,我们已经回答here

正如我所说,JsViews使用DOM元素层次结构。浏览器可以通过几种方式动态地将DOM更改为规范形式,即使您没有在标记中添加TBODY,也会插入TBODY。

通过让JsViews尝试自动补偿这一点而不是添加大量代码,性能损失和潜在的错误风险,JsViews在大多数情况下会在检测到您的标记格式不正确时给出错误消息,或者不尊重这些“规范规则” - 即错过了TBODY ......