我有以下代碼:
$(document).on("change", "[data-name=country] select", function () {
var country = $("[data-name=country] select").val();
if (country != "") {
$("[data-name=capital] input").val(country);
} });
當然,此代碼將國家名稱添加到“首都”欄位中。我想創建一個陣列,我將在其中指示每個國家/地區的首都,因此將首都而不是國家/地區添加到欄位中。
我知道這是一個基本問題,我不會用帶有陣列的 PHP 來解決這個問題,但我只是從 javascript 開始,我找不到正確的語法。
非常感謝 !
uj5u.com熱心網友回復:
您可以宣告一個全域物件并使用類似于 php 的關聯陣列,如下所示:
let countries = {
'Country1': 'Capital1',
'Country2': 'Capital2'
};
let countryName = 'Country1';
console.log(countries[countryName]);
編輯:
根據您的示例,您應該首先全域宣告國家物件(在您的檔案就緒函式之外),以便可以從任何地方訪問它,包括您的函式內部。那么既然你有了國家,你就應該嘗試從物件中獲得資本。最后,您應該檢查 capital 變數是否包含一個真值(notbeing、null、empty、undefined 等),以防萬一您提供了一個您尚未注冊的國家并繼續將其傳遞給您的元素。
let countries = {
'Country1': 'Capital1',
'Country2': 'Capital2'
};
$(document).on("change", "[data-name=country] select", function () {
let country = $("[data-name=country] select").val();
let capital = countries[country];
if (capital) {
$("[data-name=capital] input").val(capital);
}
});
uj5u.com熱心網友回復:
這是我認為您所描述的作業示例。請注意如何獲取所選國家/地區的“關聯陣列”值:
countries[$(this).val()]
let countries = {
'Australia': 'Canberra',
'Switzerland': 'Bern'
};
$(document).ready(function() {
for (let x in countries) $('select[name=countries]').append(`<option value='${x}'>${x}</option>`);
$('form[data-name=country]').on("change", "select[name=countries]", function() {
if ($(this).val()) $('.cap span').text(countries[$(this).val()])
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form data-name='country'>
<select name='countries'><option></option></select>
<hr>
<div class='cap'>Capital: <span></span></div>
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378072.html
標籤:javascript 查询
上一篇:如何將資料值屬性作為字串獲取?
