使用for循环时JS追加不起作用

JS append not working when using a for loop

我有这个代码:

success: function (result) {
   var textoTipos = $('.cargarTextosTipo');
                      
   for (var selecttipos of textoTipos) {
       selecttipos.append(`<option value="0">Hello this is a test</option>`);

   // some code

   }

}

我的问题是内部循环 selecttipos.append(`<option value="0">Hello this is a test</option>`); 不工作,它没有附加到 select 组件,但这种方式有效,但这不是我正在寻找的方式:

 success: function (result) {
    var textoTipos = $('.cargarTextosTipo');
   textoTipos.append(`<option value="0" > Hello this is a test </option>`);

}

如何使用循环使其工作?这是我想要的方式,因为我必须遍历每个 select 节点,然后再做一些事情,而不是应用于所有 select 事情。

当循环 textoTipos 时,您会得到普通的 HTML 元素。 您应该将 selecttipos 包装成 jQuery 对象:$(selecttipos)

function success(result) {
   var textoTipos = $('.cargarTextosTipo');
                      
   for (var selecttipos of textoTipos) {
       $(selecttipos).append(`<option value="0">Hello this is a test</option>`);

   // some code

   }
}

$(document).ready(success);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="cargarTextosTipo"></select>
<select class="cargarTextosTipo"></select>
<select class="cargarTextosTipo"></select>
<select class="cargarTextosTipo"></select>