我正在使用Knockout JS。而在下拉列表的订阅功能中。我需要获取所选下拉列表的索引。
其中下拉列表位于表格内(即foreach tr)
HTML:
<table>
<tbody data-bind="foreach: Rows">
<tr>
<td>
<select data-bind="options: Materials, value: selectedMaterial,attr:{index:$(index)}"></select>
</td>
</tr>
</table>
脚本:
this.selectedMaterial.subscribe(function(data){
// I need to get the index value of the selectedMaterial
// i try to get like following code but its not working
var k =$(this).attr("index");
});
答案 0 :(得分:2)
KO在订阅功能中不可能这样做。您应该尝试其他方式,例如处理更改事件。
<select data-bind="event: {change: selectChanged}"... />
yourViewModel.selectChanged = function(data, event){
var k = $(event.target).attr("index");
});
答案 1 :(得分:0)
你可以使用data-bind来设置元素的id,然后使用jQuery来获取值:
<select data-bind="options: Materials, value: selectedMaterial,attr:{index:$(index), id: 'dropdown' + $index }"></select>
$('#dropDown' + theIndexOfTheTable).prop('selectedIndex');
这确实假设您将知道正在处理的表的索引。