我有一个显示在线人员姓名的div,我有以下成员 div
<div id="members">
<span>Amlan Karmakar</span>
<span>Atin Roy</span>
<span>Arpan Burman</span>
<span>Ramanuj Mukherjee</span>
</div>
我有另一个javascript数组friends[]
,其'Amlan Karmakar'
和'Ramanuj Mukherjee'
有朋友,我想显示friends[]
数组中的成员,我正在插入friends.push("Amlan Karmakar")
的朋友姓名。 div中的名称是由cometd聊天自动生成的,为了简单起见,我在div中写了名字。我希望有一个解决这个问题的方法。 My previous question没有解决我的问题。
答案 0 :(得分:0)
您可以尝试类似下面的内容,即拆分包含成员的div的HTML,循环遍历它们并检查它们是否在friendsArray中。请注意,这是一个粗略的实现,它假设一个合理的新浏览器,因为它使用Ecmascript 5功能。这个概念也可以使用老式的for
循环来应用。
var all = document.getElementById('members').getElementsByTagName('span');
var friendsOnly = '';
for(var i=0; i<all.length; i++){
if(friendsArray.some(function(friend){
return friend == all[i].innerHTML;
})){
friendsOnly += '<span>' + all[i].innerHTML + '</span>';
}
});
all.innerHTML(friendsOnly);
顺便说一句,我假设friendsArray可能包含那些尚未进入div的人。如果情况并非如此,那么我不确定问题是什么。
答案 1 :(得分:0)
尝试此操作以仅从成员列表中获取朋友:
var friendMembers = document.getElementById('members').split(/<br\s*[\/]?>/gi)
.filter(function(member) { return (friends.indexOf(member) > -1) } );
答案 2 :(得分:0)
所以你想把来自friends []数组的数据放到
中<div id="members">
我只想在friends []数组中显示哪些名称
如果您只想显示朋友数组中的名字,正如您在评论中所建议的那样,我认为这样可以解决问题:
var target = document.getElementById("members");
// Remove this line if you want to keep the current names in the members div.
target.innerHTML = ""; // Clean before inserting friends
for (var i = 0; i <= friends.length; i++) {
target.innerHTML += friends[i] + "<br />"; // Add friend + break
}
答案 3 :(得分:0)
你应该尝试敲击.js,这个框架将帮助你处理这种情况。