0

我正在使用淘汰赛 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"); 
    });
4

2 回答 2

2

KO 不可能在订阅功能中做到这一点。您应该尝试另一种方式,例如处理更改事件。

<select data-bind="event: {change: selectChanged}"... />

yourViewModel.selectChanged = function(data, event){
     var k = $(event.target).attr("index"); 
});
于 2013-02-01T09:08:19.153 回答
0

您可以使用 data-bind 设置元素的 id,然后使用 jQuery 获取值:

        <select data-bind="options: Materials, value: selectedMaterial,attr:{index:$(index), id: 'dropdown' + $index }"></select>

$('#dropDown' + theIndexOfTheTable).prop('selectedIndex');

这确实假定您将知道正在处理的表的索引。

于 2013-02-01T09:09:39.170 回答