应该显示/隐藏类,具体取决于其内容 - 但它只会被隐藏

时间:2015-04-27 10:17:20

标签: javascript show-hide

我现在正在进行PHP聊天。 当用户登录时,他会自动发送消息"登录"这是向所有人展示的,当他退出时,他会自动发送"退出"这显示给每个人(当​​然除了他)。 当所有用户注销后,所有邮件都会自动删除。

我现在正致力于一个功能,告诉你,你是否独自一人在聊天室。 我想用JavaScript解决这个问题。我现在使用的脚本计算术语"登录的频率"和术语"退出"出现在聊天记录中(是的,不是最终解决方案,但绝对足以供我使用)

以下是代码:

.container {
  display: flex;
}

.left {
   background: green;
   width:300px;
} 
.right {
   background: red;
   width:300px;
} 

班级" alleine"只包含文字"你现在独自在这里"。 当另一个用户登录时,应该隐藏这个,当除了你注销之外的所有其他用户都应该再次显示。 隐藏课程工作正常,但当其他人退出时,它只是再次获得收获。

您可以在此处看到它:http://team3.digital-cultures.net/index.php# 只需从下拉列表中选择一个名称并选择一个开始/目的地。

我做错了什么? 谢谢!

编辑:出于测试目的,您只需输入" betreten" ("登录"德语)和" verlassen" ("在德语中注销")在聊天中,无需使用多个帐户登录:)

1 个答案:

答案 0 :(得分:1)

您需要使用return来获取值。使用函数名称只是创建一个新的局部变量。我已经重命名了var以使其更清晰。

function countverlassen(){
    var temp = document.body.innerText;

    // the g in the regular expression says to search the whole string 
    // rather than just find the first occurrence
    var verlassenCount = (temp.match(/verlassen/g) || []).length +1;

    console.log(verlassenCount);
    return verlassenCount;
}

使用countverlassen()调用该函数并获取值。存储值而不是每次调用函数。

function countbetreten() {
    var temp = document.body.innerText;

    // the g in the regular expression says to search the whole string 
    // rather than just find the first occurrence
    var betretenCounter = (temp.match(/betreten/g) || []).length;
    var verlassenCounter = countverlassen();

    console.log(betretenCounter);
    if (betretenCounter >= 2 && betretenCounter != verlassenCounter) {
        $('.alleine').hide();
    } else if (verlassenCounter >= 2 && betretenCounter == verlassenCounter) {
        $('.alleine').show();
    }
}