afterRender イベントでレンダリングされた要素を DOM に追加する前に取得できます。詳細については、 http://knockoutjs.com/documentation/template-binding.html#note_3_using_afterrender_afteradd_and_beforeremoveを参照してください。
最終的にレンダリングされた要素にアクセスする必要がある場合は、カスタム バインディング ( http://jsfiddle.net/nE7kK/ )を作成します。
<body data-bind="getRenderedElements: viewModel">
<ul data-bind="foreach: viewModel">
<li data-bind="text: name"></li>
</ul>
</body>
viewModel = ko.observableArray([
{ name: "Bungle", type: "Bear" },
{ name: "George", type: "Hippo" },
{ name: "Zippy", type: "Unknown" }
]);
ko.bindingHandlers.getRenderedElements = {
update: function (element, valueAccessor) {
// use timeout so browser has time to render the elements
setTimeout(function() {
var html = $(element).html();
alert(html);
}, 1000);
}
};
ko.applyBindings(viewModel);
注: 仮想要素を使用する場合は、これらの要素への getRenderedElements バインディング アクセスを許可するようノックアウトに指示する必要があります。