使用javascript选择行

使用javascript选择行,javascript,html,knockout.js,Javascript,Html,Knockout.js,在我的MVC Razor项目中,我以行(列表格式)显示数据。 这些值使用javascript敲除显示 我想使用javascript KnockoutJs高亮显示所选行。 有没有更好的办法 这是我的密码 <ul class="navlist" data-bind="foreach:selectOptions" > <li><a href="#" data-bind="click:selectOption">

在我的MVC Razor项目中,我以行(列表格式)显示数据。 这些值使用javascript敲除显示

我想使用javascript KnockoutJs高亮显示所选行。 有没有更好的办法

这是我的密码

<ul class="navlist" data-bind="foreach:selectOptions" >                    
    <li><a href="#" data-bind="click:selectOption">
        <span data-bind="text:name"></span>
        <span data-bind="text:option"></span>
        <span data-bind="text:optiondate"></span></a>
    </li>                                        
</ul>
我做了一个简单的测试

正如您所看到的,我将所选选项存储在一个可观察的对象中。 如果所选选项是当前选项,则数据绑定应用“highlight”类

<ul class="navlist" data-bind="foreach:selectOptions" >                    
    <li>
        <div data-bind="click:$parent.selectOption, css: {'highlight' : $parent.selectedOption() == $data }" style="cursor: pointer">
        <span data-bind="text:name"></span>
        <span data-bind="text:option"></span>
        <span data-bind="text:optiondate"></span>
        </div>
    </li>                                        
</ul>

我希望它能有所帮助。

我在这里发布了一些有用的东西:
avascript/61581214#61581214

您如何知道所选行?您有一些打字错误。。。删除尾随逗号
选择选项:ko.observable(),
和缺少的“d”
vm = {
    selectOptions : [{name:'name1',option : 'option1',  optiondate:'optiondate1'},
                     {name:'name1',option : 'option2',  optiondate:'optiondate2'},
                     {name:'name3',option : 'option3',  optiondate:'optiondate3'}],
    selectOption :  function(opt){
        vm.selectedOption(opt);
    },
    selectedOption:  ko.observable()
}

ko.applyBindings(vm);