messages.includes不是javascript函数
我试图检查一个数组中的字符串是否存在于另一个数组中。“data”,函数的参数是一个包含消息的数组。但是我得到了错误“uncaughttypeerror:messages.includes不是函数”。有什么解决办法吗?提前谢谢messages.includes不是javascript函数,javascript,Javascript,我试图检查一个数组中的字符串是否存在于另一个数组中。“data”,函数的参数是一个包含消息的数组。但是我得到了错误“uncaughttypeerror:messages.includes不是函数”。有什么解决办法吗?提前谢谢 socket.on('show_all_messages', function(data) { // console.log(data); var messages = document.getElementById('messages').chi
socket.on('show_all_messages', function(data) {
// console.log(data);
var messages = document.getElementById('messages').children;
len = data.length;
for (i = 0; i < len; i++) {
if(!(messages.includes(data[i])))
{
const newNode = document.createElement('div');
newNode.innerHTML = data[i];
document.getElementById('messages').appendChild(newNode);
}
}
})
socket.on('show_all_messages')函数(数据){
//控制台日志(数据);
var messages=document.getElementById('messages').children;
len=数据长度;
对于(i=0;i
该消息
对象来自使用.children
返回HTMLCollection
而不是数组
,因此没有包含
函数
我假定您希望在数据
数组中搜索每个子元素的文本以查找匹配项。因此,我假设您的html如下所示:
<div id='messages'>
<span>Some text</span>
<span>More text</span>
<span>Other stuff</span>
</div>
for (let i=0; i<messages.length; i++) {
if (messages[i].textContent &&
messages[i].textContent.indexOf(data[i]) >= 0) {
const newNode = document.createElement('div');
newNode.innerHTML = data[i];
document.getElementById('messages').appendChild(newNode);
}
}
但这将导致在外部元素中添加新的
节点。这就是你想要的吗?包含
是数组对象上的函数,但是消息
不是数组。那么解决方案是什么呢?不,对不起,不完全是这样。但我认为主要的问题是“var messages=document.getElementById('messages').children;”您是否有其他方法将div的子元素保存到数组中?您能否在问题中显示html的结构?