Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 添加选项以动态选择_Jquery_Select_Dynamic_Xataface - Fatal编程技术网

Jquery 添加选项以动态选择

Jquery 添加选项以动态选择,jquery,select,dynamic,xataface,Jquery,Select,Dynamic,Xataface,我使用Ajax/JSON从后端提取了数据,并尝试使用jQuery将这些数据附加到选择框中。数据正确地附加到选择框中,但只有在我放入警报(“某些文本”)时,数据才会显示在页面上 代码如下: var comp_select = jQuery("select[class='xf-depselect-selector depselect-fragment']").get(3); alert("some text"); for (var i = 0; i < data.length; i++)

我使用Ajax/JSON从后端提取了数据,并尝试使用jQuery将这些数据附加到选择框中。数据正确地附加到选择框中,但只有在我放入
警报(“某些文本”)
时,数据才会显示在页面上

代码如下:

var comp_select = jQuery("select[class='xf-depselect-selector depselect-fragment']").get(3);

alert("some text");

for (var i = 0; i < data.length; i++) {
   jQuery(comp_select).append(new Option(data[i]["component_name"], data[i]["component_name"]));
}
var comp_select=jQuery(“select[class='xf-depselect-selector-depselect fragment']”);
警报(“某些文本”);
对于(变量i=0;i
在看不到更多代码的情况下,这听起来像是竞争条件。是将项目追加到来自ajax调用的成功回调中的代码,还是在调用ajax方法后调用的函数?通过“data”的循环将建议回调,但我无法从该片段中确定是否是jQuery.ajax({url:'The_url.php“success:function(data){var comp_select=jQuery(“select[class='xf-depselect-selector-depselect fragment'])。获取(3);警报(“立即准备就绪”);用于(var i=0;iAt在成功回调点,是DOM中的第四个select吗?是否可以为要附加ID的select指定一个ID,以确保它添加到正确的select?get函数是一个基于0的索引,因此如果您说它正在添加到页面但无法选择该站点,则可能是它添加到了错误的selectm、 另一方面,您可以通过将所有选项添加到数组中并使用arrayVar.join(“”)执行.append once来一次性追加所有项,从而使追加更加高效,这样DOM只会在一次中被命中,因为它只是正确的DOM元素。它可以正确地添加项,但只有在写入警报()后才会显示。是的,我尝试将所有选项放入一个数组。并将所有选项一次附加到select。但没有起作用。下面是at代码:
var comp_select=jQuery(“select[class='xf-depselect-selector-depselect fragment'])。获取(3);警报(“立即准备就绪”);用于(var i=0;我现在可以访问台式机而不是移动设备,我可以创建一个模拟您的情况。我认为您的问题很可能是.get(3)来获取第四个选择。我将其更改为$(选择器)[3]然后选项就显现出来了。我制作了一个JSFIDLE供参考:没有用,史蒂文,还是一样的行为。我怎么能把我的代码放在这里的注释框中呢。