【发布时间】:2016-08-03 06:03:36
【问题描述】:
我有一个由淘汰视图模型布局的动态生成的 元素的无序列表,我想在视图加载时让其中一个 元素具有类或 CSS 属性。我想避免使用 jQuery 并尽可能保持纯淘汰。
viewModel.headers = [
{ title: 'Item 1', sortKey: 'item1', asc: true, active: false },
{ title: 'Item 2', sortKey: 'item2', asc: false, active: true },
{ title: 'Item 3', sortKey: 'item3', asc: true, active: false},
{ title: 'Item 4', sortKey: 'item4', asc: true, active: false }
];
这是 HTML:
<ul data-bind="foreach: headers">
<li data-bind="text: title"></li>
</ul>
我尝试使用伪 CSS 选择器 nth-child(2) 来选择该列表中的第二个 li 项目并应用样式,但是当浏览器考虑 CSS 时,该无序列表当然不存在。与 jQuery 类似的问题,虽然我仍然可以使用 jQuery/Js 与动态创建的元素进行交互(比如这里的Event binding on dynamically created elements?),但我几乎可以肯定有一种快速而干净的方法可以使用 Knockout 来实现。我已经查看了 Knockout 的“样式”和“css”绑定,但我无法直接将属性添加到无序列表的 HTML,因为当从视图模型加载页面时,我正在使用 foreach 生成 li 元素...
【问题讨论】:
-
你有条件分配班级还是只想分配给第二个
li?
标签: javascript css knockout.js