我正在尝试选择我认为是使用knockoutjs创建的选项(但我不确定)
<select class="styled" data-bind="options: Locations, optionsText: 'Name', value: DesiredLocat…ion: SelectLocationText(), event: { change: UpdateLocation }">
<option value="">
Select location
</option>
<option value="">
Some location
</option>
<option value="">
Some location2
</option>
</select>
整个东西被捆绑在一个框架中,我已经用Google搜索了如何使jquery在框架中工作,现在我正在使用它像这样
var frameDocument= $("frame[name='mainFrame']", top.document)[0].contentDocument;
我尝试这样做:
$(frameDocument).find('.styled').val('Some location').change();
并且像这样:
$(frameDocument).find('.styled').children().each(function(){
if ($(this).text()=='Some location'){
$(this).click();
return false;
}
})
有谁可以帮助我如何选择我需要的选项?
答案 0 :(得分:2)
最好不使用jquery
,因为您使用的是knokout.js
。
示例:https://jsfiddle.net/kyr6w2x3/82/
HTML:
<select class="styled" data-bind="options: Locations, optionsText: 'Name', optionsValue: 'Id',value: selectedLocation">
JS:
function MainViewModel() {
var self = this ;
self.Locations = ko.observableArray([{Name:"Location 1" , Id : 1 },{Name:"Location 2" , Id : 2 },{Name:"Location 3" , Id : 3 }]);
self.selectedLocation = ko.observable();
self.selectedLocation.subscribe(function(newValue){
console.log(newValue);
})
}
ko.applyBindings(new MainViewModel());