Javascript 回调中的DOM操作
我正在构建一个连接到Javascript 回调中的DOM操作,javascript,jquery,socket.io,Javascript,Jquery,Socket.io,我正在构建一个连接到socket.io服务器的客户端。我有以下代码: $(document).ready(function () { Desktops.onData(function (desktops) { var desktopsList = $("#desktops"); $.each(desktops, function (id, desktop) { console.log(desktop.name);
socket.io
服务器的客户端。我有以下代码:
$(document).ready(function () {
Desktops.onData(function (desktops) {
var desktopsList = $("#desktops");
$.each(desktops, function (id, desktop) {
console.log(desktop.name);
desktopsList.append('<option value="' + id + '">' + desktop.name + '</option>');
});
});
Sockets.connect();
});
我知道问题不在数据中,因为console.log
起作用。我还知道问题不在于我的HTML或jQuery代码,因为当我尝试在回调之外附加到select
时,它会起作用。因此,它一定是关于在回调中执行jQuery的。我该怎么做才能使jQuery工作
谢谢。鉴于您声明正在使用的插件(),您需要调用其上的
刷新
方法,以识别新的选项
元素已添加到基础选择
。试试这个:
Desktops.onData(函数(桌面){
var desktopsList=$(“#桌面”);
$。每个(桌面,功能(id,桌面){
console.log(desktop.name);
desktoplist.append(“”+desktop.name+“”);
});
desktopsList.selectpicker('refresh');//在此处更新引导选择
});
您可以通过检查工具查看附加的元素吗?你能提供一个例子吗?因为我不明白为什么它可能不起作用(你在页面上只有一个#desktops
元素,对吗?)我刚刚检查过,我可以通过检查工具看到附加的元素,但它们没有呈现在我的屏幕上。为什么?如果使用一些插件进行下拉,可能不是更新html?@Justinas我使用引导插件使选择看起来更“漂亮”,你认为问题可能就在那里?有没有办法让我手动更新html?请检查控制台
<select id="desktops" class="selectpicker" data-live-search="true">
</select>