根据Javascript函数替换HTML内容

根据Javascript函数替换HTML内容,javascript,jquery,html,web,Javascript,Jquery,Html,Web,我想显示关于变量状态的不同HTML元素 在我的HTML文件中,我有: <div id="dustbinstatus"></div> 在我的JS文件中,我有: if (message.payloadString == "full"){ $('#dustbinstatus').append('<i class="material-icons">delete</i>'); } else if (message.payloadStrin

我想显示关于变量状态的不同HTML元素

在我的HTML文件中,我有:

<div id="dustbinstatus"></div>

在我的JS文件中,我有:

if (message.payloadString == "full"){ 
    $('#dustbinstatus').append('<i class="material-icons">delete</i>');
} 

else if (message.payloadString == "empty"){
    $('#dustbinstatus').append('<p> Dustbin ok </p>');
}
if(message.payloadString==“full”){
$('#dustbinstatus')。追加('delete');
} 
else if(message.payloadString==“empty”){
$(“#垃圾箱状态”)。附加(“垃圾箱正常”

”); }
message.payloadString变量可以使用WebSocket动态更改。 在这个例子中,它可以工作,但它只是在每次状态更改时添加一个新行,我希望替换一行,并根据状态进行更改

有办法吗

谢谢大家!


Olivia

如果要替换DOM元素的内容,必须使用jQuery的函数(类似于JS的innerHtml),如下所示:

$('#dustbinstatus').html('<p> Dustbin ok </p>');
$('#dustbinstatus').html('dustbinok

');
如果要替换DOM元素的内容,必须使用jQuery的函数(类似于JS的innerHtml),如下所示:

$('#dustbinstatus').html('<p> Dustbin ok </p>');
$('#dustbinstatus').html('dustbinok

');
使用
html()
而不是
append()

Append用于将
Dom元素
追加到现有元素的末尾

1st:您可以使用
html()

使用
html()
而不是
append()

Append用于将
Dom元素
追加到现有元素的末尾

1st:您可以使用
html()


使用
.html
更改
.append
函数

Append
简单地解释它自己,它将附加到它所包含的内容


Html
将替换所选元素内部的整个Html部分。

更改
。使用
.Html
附加
函数

Append
简单地解释它自己,它将附加到它所包含的内容


Html
将替换所选元素内部的整个Html部分。

在添加新行之前,应删除先前创建的行。大概是这样的:

$('#dustbinstatus').empty();
if (message.payloadString == "full"){ 
    $('#dustbinstatus').append('<i class="material-icons">delete</i>');
} 

else if (message.payloadString == "empty"){
    $('#dustbinstatus').append('<p> Dustbin ok </p>');
}
$(“#垃圾箱状态”).empty();
如果(message.payloadString==“full”){
$('#dustbinstatus')。追加('delete');
} 
else if(message.payloadString==“empty”){
$(“#垃圾箱状态”)。附加(“垃圾箱正常”

”); }
在添加新行之前,您应该删除以前创建的行。大概是这样的:

$('#dustbinstatus').empty();
if (message.payloadString == "full"){ 
    $('#dustbinstatus').append('<i class="material-icons">delete</i>');
} 

else if (message.payloadString == "empty"){
    $('#dustbinstatus').append('<p> Dustbin ok </p>');
}
$(“#垃圾箱状态”).empty();
如果(message.payloadString==“full”){
$('#dustbinstatus')。追加('delete');
} 
else if(message.payloadString==“empty”){
$(“#垃圾箱状态”)。附加(“垃圾箱正常”

”); }
$('dustbinstatus').html('')//在追加之前清空现有dom
如果(message.payloadString==“full”){
$('#dustbinstatus')。追加('delete');
}else if(message.payloadString==“empty”){
$(“#垃圾箱状态”)。附加(“垃圾箱正常”

”); }
$('dustbinstatus').html('')//在追加之前清空现有dom
如果(message.payloadString==“full”){
$('#dustbinstatus')。追加('delete');
}else if(message.payloadString==“empty”){
$(“#垃圾箱状态”)。附加(“垃圾箱正常”

”); }
问题是您正在追加元素,因此它会在末尾追加元素,因此每次都会得到一行新行

您可以通过以下两种方式进行:

  • 您可以将display设置为none,并添加一个类active,以显示元素,而不是追加
var message=“full”;
如果(消息==“已满”){
$('.material icons').attr('class','active');
$('dustbinstatus p').attr('class','notactive');
} 
else if(消息==“空”){
$('#dustbinstatus p').attr('class','active');
$('.material icons').attr('class','notactive');
}
.active{
显示:块;
}
.不活跃{
显示:无;
}

删除
垃圾箱没问题


问题是您正在追加元素,因此它会在末尾追加元素,因此每次都会得到一行新行

您可以通过以下两种方式进行:

  • 您可以将display设置为none,并添加一个类active,以显示元素,而不是追加
var message=“full”;
如果(消息==“已满”){
$('.material icons').attr('class','active');
$('dustbinstatus p').attr('class','notactive');
} 
else if(消息==“空”){
$('#dustbinstatus p').attr('class','active');
$('.material icons').attr('class','notactive');
}
.active{
显示:块;
}
.不活跃{
显示:无;
}

删除
垃圾箱没问题

使用html()代替append()可能重复使用html()代替append()可能重复使用
       $('#dustbinstatus').html('');//blank existing dom before append
        if (message.payloadString == "full"){ 
         $('#dustbinstatus').append('<i class="material-icons">delete</i>');
         } else if (message.payloadString == "empty"){
          $('#dustbinstatus').append('<p> Dustbin ok </p>');
       }