我正在用純 Javascript 撰寫一個函式,我通過 AJAX 提交一些值,如果它回傳結果。回傳的是一個帶有選擇器新選項的字串。我需要從選擇器中洗掉所有選項并用回傳的集合替換它們。
HTML
<select id="mySelector">
....
</select>
JS
(async () => {
....
const res = await fetch(url, {
method: "POST",
headers,
body
});
if (results.ok) {
let myoptions = await results.text();
var myselectr = document.querySelector("#mySelector");
myselectr.innerHTML = "";
myselectr.append(myoptions);
}
})();
它似乎回傳選項,我看到它們添加到 DOM 中,但選擇器似乎沒有將它們視為選項。問題是我實際上需要使用我的 PHP 功能來構建選項。我認為這是因為我將它作為文本字串回傳。不太確定。
我在這里缺少什么?
uj5u.com熱心網友回復:
append將DOMStrings 作為Text節點插入,導致 HTML 被轉義。您應該分配myoptions給選擇的innerHTML:
(async () => {
....
const res = await fetch(url, {
method: "POST",
headers,
body
});
if (results.ok) {
let myoptions = await results.text();
var myselectr = document.querySelector("#mySelector");
myselectr.innerHTML = myoptions;
}
})();
uj5u.com熱心網友回復:
發出請求后的回傳格式是陣列。如果它是陣列,則使用 for 回圈手動附加選項。
var myselectr = document.querySelector("#mySelector");
var option = document.createElement("option");
option.text = "Text";
option.value = "myvalue";
myselectr.append(option);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314697.html
標籤:javascript php 阿贾克斯
上一篇:在ajax中將模型發布到控制器
