所以我试图根据是否选中子复选框,使用Knockout.js为元素添加一个类.为此,我试图将此作为参数传递给我的函数.目前,我的删节DOM结构如下:
<tr data-bind="css: { selected: isRowChecked(this) }"> <td><label><input type="checkBox"></label></td> </tr>
我的isRowChecked函数是这个(我使用jQuery来定位输入):
function isRowChecked(elem) { var checkBox = $(elem).find('input[type="checkBox"]'); return checkBox.checked; }
然而,如果我控制台.log,我得到的就是全局窗口对象.
使用jQuery完全解决这个问题是不可行的,因为我工作的项目几乎已经完全使用了淘汰赛.有任何想法吗?
解决方法
您应该能够通过传递特殊绑定上下文变量$element来实现此目的.这是最后一个变量
discussed here.
$element
This is the element DOM object (for virtual elements,it will be the
comment DOM object) of the current binding. This can be useful if a
binding needs to access an attribute of the current element. Example:
< div id =“item1”data-bind =“text:$element.id”>< / div>
在您的情况下,这将是这样的:
<tr data-bind="css: { selected: isRowChecked($element) }"> <td><label><input type="checkBox"></label></td> </tr>