Appending/updating数组拼接实时问题

Appending/updating issue in real time when splicing from array

我目前正在使用 socket.io、ARI_Client(Node.js) 和 JQuery.

开发应用程序

我现在有一个小问题,我可以根据数组中的内容实时更改值,在向数组添加内容时一切正常......但不是删除它们时,我必须刷新页面才能正常工作。

当我在数组中只有一个值并拼接它工作的相同元素时,除此之外,值交换位置在网页上,当我刷新时,原来想要的效果就在那里。

更新sip功能。

如何将数据传回客户端。

function updateSip() {
  console.log("Value: " + test);
  io.sockets.emit('sip', chanArr);
}

数组拼接调用函数

function stasisEnd(event, channel) {
    console.log(util.format(
        'Channel %s just left our application', channel.name));
    console.log(channel.name);

    var index = chanArr.indexOf(channel.name);
    chanArr.splice(index, 1);
    updateSip();
  }

附加到网页。

Query(function ($) {
    var socket = io.connect();
    var $sip = $('#sip');

    socket.on('sip', function (data) {
        var sip = '';
        $( "#exe" ).remove();
        for (i = 0; i < data.length; i++) {
            sip += data[i];
        if(sip){
        $sip.append('<tr id="exe">\
                                    <td>'+ sip +'</td>\
                                    <td><btton class="btn btn-default mute" id="mute" type="submit">Mute</button></td>\
                                <td><button class="btn btn-default kick" id="kck" data-toggle="modal" data-target="#myModal" type="submit">Kick</button></td>\
                                    </tr>');
        }
        else{
            $sip.append('Currently no extensions');
        }
        sip = '';
        }

    });

为了更清楚地了解发生了什么,我将 link 截图。

数组中的单个值,如果我remove/end调用它会实时从数组和网页中拼接出来

如果数组中有两个以上的值,你在下面看到的两个值交换就是这样,但是当我刷新页面时,从数组中删除的元素就再也看不到了。

我需要它随时实时删除,但我不确定为什么它适用于单个值而不是多个值。

正如@guramidev 所提供的那样,问题是使用 ID 而不是 class,这涉及一次只删除一个元素,即使有很多元素也是如此。

$( "#exe" ).remove();