使用javascript数组</div>在<div>中显示所选名称

时间:2013-03-26 14:20:06

标签: javascript cometd

我有一个显示在线人员姓名的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没有解决我的问题。

4 个答案:

答案 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,这个框架将帮助你处理这种情况。