我正在使用http://geoplugin.net插件来检测用户位置。我有一个<select>
状态列表,并使用 jQuery
$.getJSON(url, function(data){
var state = data['geoplugin_region'];
$('#states').val(state).attr('selected',true);
var selectId = "#" + state ;
var citySelect = selectId + "-cities";
$(citySelect).show();
});
然后它使用我编写的另一个插件来显示具有该州城市的正确选择。我的格式是选择 idWA-cities
用于华盛顿。
然后我写了这个:
var detectedCity = data['geoplugin_city'];
var city = detectedCity.replace(" ","-");
var selectedCity = city.toLowerCase();
var stateDash = state + "-";
var selectedValue = stateDash + selectedCity;
$(citySelect).val(selectedValue).attr('selected',true);
但是当检测到一个不在选择中的城市时,它只返回第一个值。如何检查该城市是否在选择中,然后仅在存在时才选择它。我的选择是这样设置的(对于华盛顿):
<select name="cities" id="WA-cities" class="cities">
<option value="" selected="selected" disabled>Select a City</option>
<option value="WA-bellingham">Bellingham</option>
<option value="WA-seattle">Seattle</option>
</select>
选择的城市实际上更多。但我在默瑟岛被发现,这不在选择中。JavaScript 说$(citySelect).val('WA-mercer-island).attr('selected',true);
,但只是选择了贝灵厄姆,因为没有默瑟岛。我应该怎么办?