Javascript 如何将现有DOM元素绑定到KnockoutJS视图模型

Javascript 如何将现有DOM元素绑定到KnockoutJS视图模型,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,如果JS值发生更改,我将使用KnockoutJS更新DOM(Knockout为我们提供了这些函数) 默认的淘汰视图模型类似于以下块: Javascript: var viewModel = { price: ko.observable(109) } Html: 现在,当价格发生变化时,视图会自动通过淘汰更新。。 但我想要的是: var viewModel = { price: ko.observable(jQuery("#price")) } <span id="p

如果JS值发生更改,我将使用KnockoutJS更新DOM(Knockout为我们提供了这些函数)

默认的淘汰视图模型类似于以下块:

Javascript:

var viewModel = {
    price: ko.observable(109)
}
Html:


现在,当价格发生变化时,视图会自动通过淘汰更新。。 但我想要的是:

var viewModel = {
    price: ko.observable(jQuery("#price"))
}

<span id="price">99.00</span>
var viewModel={
价格:ko.可观察(jQuery(“价格”))
}
99
因此,我想将DOM元素绑定到我的viewModel。模型中的price属性初始化为值99.00。当价格发生变化时(在Javascript中),还应更新#price的DOM值

我希望你们清楚这个问题


非常感谢您抽出时间

尝试使用依赖的可观察对象

var viewModel = {
    price: ko.observable(109)
}

viewModel.priceElement= ko.dependantObservable(function(){
    viewModel.price();
    return jQuery("#price");
})

这将在每次更改价格时更新。

您的视图模型应初始化如下:

var viewModel = { 
    price: ko.observable(jQuery("#price").text()) 
} 

<span id="price" data-bind="text: price">99.00</span> 
。。你应该写

viewModel.price('some new value');

这种方法将更符合MVVM模式。

如果我理解正确,则不会。您仍然需要使用
数据绑定
内联。
jQuery("#price").text('some new value');
viewModel.price('some new value');