首页 > 解决方案 > 选择器似乎没有返回的选项

问题描述

我正在用纯 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 功能来构建选项。我认为这是因为我将它作为文本字符串返回。不太确定。

我在这里想念什么?

标签: javascriptphpajax

解决方案


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;                     

    }
})();

推荐阅读