Jquery 在按钮点击的情况下,Observable不起作用

Jquery 在按钮点击的情况下,Observable不起作用,jquery,knockout.js,Jquery,Knockout.js,我有一个带有“id”元素的json,我在一个文本框中传递该“id”,并希望在点击按钮时在下面的列表中找到相应项的更改颜色 Js代码: var bugTracker=function(){ var self=this; self.bugId=ko.observable(), self.bugList=ko.observableArray([ {id:1,name:"Abc"},{id:2,name:"Dooo"},{id:3,name:"Usss"},{id:

我有一个带有“id”元素的json,我在一个文本框中传递该“id”,并希望在点击按钮时在下面的列表中找到相应项的更改颜色

Js代码:

   var bugTracker=function(){
    var self=this;
    self.bugId=ko.observable(),
    self.bugList=ko.observableArray([
    {id:1,name:"Abc"},{id:2,name:"Dooo"},{id:3,name:"Usss"},{id:4,name:"Yeess"}
    ])
    self.currentSelectedId=ko.observable(0);

    self.getSelected=function(data){
    console.log(self.bugId());
    this.currentSelectedId(self.bugId());
    console.log(this.currentSelectedId());
    }

    self.getClicked=function(data){
    //console.log(self.bugName());
    this.currentSelectedId(data.id);
    console.log(this.currentSelectedId());
    }

   }

   $(function(){
   ko.applyBindings(new bugTracker());
   });
HTML代码:

<div class="content">
    <label>Enter Bug Id:</label>
    <input type="text" data-bind="value : bugId" >
    <input type="button" data-bind="click: getSelected" value="Select Item"/>
    <ol data-bind="foreach : bugList">
        <li data-bind="text : name,css:{'filteredItemTex': id===$parent.currentSelectedId()},'click': function(){$parent.getClicked($data);}" >
        </li>
    </ol>

</div>

问题是
bugId
绑定到一个文本框,因此它的值是一个字符串
id==$parent.CurrentSelecteId()
失败,因为
==
正在进行严格的比较

您可以将其更改为
==
,或使用
parseInt

self.getSelected = function(data) {
    console.log(self.bugId());
    this.currentSelectedId(parseInt(self.bugId()));
    console.log(this.currentSelectedId());
}
小提琴:

self.getSelected = function(data) {
    console.log(self.bugId());
    this.currentSelectedId(parseInt(self.bugId()));
    console.log(this.currentSelectedId());
}