2013-01-22 115 views
1

查找淘汰赛元素我有淘汰赛渲染一些元素:通过jQuery选择

<div class="chart" data-bind="attr: {'data-chart-id': id}"></div> 

然后,我希望通过数据属性来查找jQuery的元素:$("[data-chart-id='1']")

但是,当我这样做是在模型中,该模型的data-chart-id尚未分配。

如何处理?

回答

3

您可以使用setTimeout的等待绑定完成或写custom binding

HTML:

<div class="chart" data-bind="customAttribute: {chartId: id}"></div> 

JS:

ko.bindingHandlers.customAttribute = { 
    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) { 
     var value = ko.utils.unwrapObservable(valueAccessor().chartId); 
     $(element).attr('chartId', value); 
     // then you can write your jquery code here 
    } 
}; 
+0

这是编写自定义绑定的非常好的解决方案。谢谢! – Kir

1

试试这个:

$("body *[data-chart-id='1']"); 
+0

当我这样做的时候它不起作用在JS文件中。仅从浏览器控制台 – Kir