0
剛接觸javascript我遇到了一個奇怪的問題。我有一個元素和一個變量的數組,我想將該變量與所有數組元素進行比較,如果它們匹配,則執行一些操作。比較一個變量和一個數組元素不工作[Javascript]
這裏的代碼片段:
for (var i=0; i<country_arr.length; i++) {
option_str.options[option_str.length] = new Option(country_arr[i],country_arr[i]);
if(selected_country == country_arr[i]){
option_str.options[i].selected = true;
}
}
數組本身是一個字符串數組:
var country_arr = new Array("Republic of Ireland", "Northern Ireland");
無論出於何種原因,這並不if語句,但奇怪的是,當我更換輸入:
if(selected_country == country_arr[i])
有:
if(selected_country == "Republic of Ireland")
......它確實並且完美地工作。
我是不是比較這兩個元素不正確?任何幫助將不勝感激。
更新 - FULL .js文件:
完整的外部.js文件:
//Create a new array, to contain the list of countries available.
var country_arr = new Array("Republic of Ireland", "Northern Ireland");
//Create a new array to hold a list of counties depending on country selection.
var s_a = new Array();
s_a[0]="";
s_a[1]="Carlow|Cavan|Clare|Cork|Donegal|Dublin|Galway|Kerry|Kildare|Kilkenny|Laois|Leitrim|Limerick|Longford|Louth|Mayo|Meath|Monaghan|Offaly|Roscommon|Sligo|Tipperary|Waterford|Westmeath|Wexford|Wicklow";
s_a[2]="Antrim|Armagh|Down|Dungannon|Derry|Tyrone";
function print_country(country_id, selected_country){
//Given the id of the <select> tag as function argument, it inserts <option> tags
var option_str = document.getElementById(country_id);
option_str.length=0;
option_str.options[0] = new Option('Select Country','');
option_str.selectedIndex = 0;
for (var i=0; i<country_arr.length; i++) {
option_str.options[option_str.length] = new Option(country_arr[i],country_arr[i]);
if(selected_country == country_arr[i]){
option_str.options[i].selected = true;
print_county('county',i);
}
}
}
function print_county(state_id, state_index){
var option_str = document.getElementById(state_id);
option_str.length=0; // Fixed by Julian Woods
option_str.options[0] = new Option('Select County','');
option_str.selectedIndex = 0;
var state_arr = s_a[state_index].split("|");
for (var i=0; i<state_arr.length; i++) {
option_str.options[option_str.length] = new Option(state_arr[i],state_arr[i]);
}
}
的函數被調用和變量selected_country使用通過PHP文件設置:
<script language="javascript">
var selected = <?php echo json_encode($g_country); ?>;
print_country("country", selected);
</script>
您是否通過與調試器的循環加強?你可以提供一個[完整的最低限度的例子嗎?](http://stackoverflow.com/help/mcve) –
如果你不練習你的JavaScript,然後使用Lo-Dash lib http://lodash.com/ – wayne
「 selected_country'集合?請發佈完整的代碼及其調用 – Bergi