説明
配列を含むviewModelがあります。
ここで、配列内の 1 つの項目に関連付けられた dom 要素を取得したいと考えています。
質問: 配列内の 1 つの項目の DOM 要素を取得するにはどうすればよいですか?
サンプル
<script src="~/Scripts/knockout-2.0.0.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
シンプルなUI
<span data-bind="text: name"></span>
<ul data-bind="foreach: items">
<li><span data-bind="text: id"></span></li>
</ul>
<button>click me</button>
JavaScript
<script type="text/javascript">
// define demo viewModel
var ViewModel = function (name) {
self = this;
self.name = ko.observable(name);
self.items = ko.observableArray();
};
// define demo itemsModel
var ItemsModel = function (id) {
self = this;
self.id = ko.observable(id);
};
// create viewModel
var viewModel = new ViewModel("Hello World!");
// push some items
viewModel.items.push(new ItemsModel(1));
viewModel.items.push(new ItemsModel(2));
viewModel.items.push(new ItemsModel(3));
ko.applyBindings(viewModel);
$(function () {
$("button").click(function () {
var itemsModel = viewModel.items()[1];
var id = itemsModel.id();
// how can i get the <li> element ?
var domElement = ???;
});
});
</script>