在给定类的div中查找数字,并根据值

时间:2017-04-26 16:46:05

标签: javascript jquery

我的请求超出了我的基本脚本功能。我的网站上有一条消息,告诉用户他们在密码到期前已经离开了多少天:

" John doe的密码在91天后到期"

我想添加一些评估此语句的脚本,该脚本包含在类" expiryNotice,"的div中。提取数字,如果大于60,基本上隐藏整个div。

我之前已经编写过JS / jQuery进行静态修改,但从来没有任何逻辑修改,所以我有点迷失在哪里开始。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

警告说,除了解析消息div中的文本之外,还有更合理的方法可以解决这个问题,但这样做会有:

$(function(){
  var msg = $('#notice').text()
  var days = msg.match(/\d+/)[0]
  console.log(days)
  if(Number(days) > 60) {
    $('#notice').hide()
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="notice">"John doe's password expires in 91 days"</div>

答案 1 :(得分:0)

function CheckExpiryNotice(maxNum) {
  var expiryNoticeDiv = $('.expiryNotice');
  var expiryNoticeStr = expiryNoticeDiv.text();
  $(expiryNoticeStr.split(" ")).each(function(i,e) {
    if($.isNumeric(e)) { 
      if(e > maxNum) {
       expiryNoticeDiv.hide();
      }
    }
  });
}

调用此函数应该有效CheckExpiryNotice(60);

答案 2 :(得分:0)

如果您不想使用jQuery,可以在javascript中执行以下操作:

    var elem = document.getElementsByClassName('expiryNotice');
    var str = elem[0].innerText;
    var days = str.match(/\d+/)[0];
    if (+days > 60) {
        elem[0].hidden = true;
    }