简体   繁体   English

更改JavaScript中的颜色文本

[英]Change color text in javascript

I'm new in javascript and I want to change color for different classes in this code below. 我是javascript语言的新手,我想在下面的代码中为不同的类更改颜色。 I want for example class 'ok' color green, class 'error' color red. 例如,我想将类“ ok”的颜色设置为绿色,将类“ error”的颜色设置为红色。

$('#pass').keyup(function (e) {
    var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
    var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
    var enoughRegex = new RegExp("(?=.{6,}).*", "g");
    if (false == enoughRegex.test($(this).val())) {
        $('#passstrength').html('Minimum 6 znaków');
    } else if (strongRegex.test($(this).val())) {
        $('#passstrength').className = 'ok';
        $('#passstrength').html('Silne!');
    } else if (mediumRegex.test($(this).val())) {
        $('#passstrength').className = 'alert';
        $('#passstrength').html('Średnie!');
    } else {
        $('#passstrength').className = 'error';
        $('#passstrength').html('Słabe!');

    }
    return true;
});

You need to use proper jquery function to add the desired class . 您需要使用适当的jquery函数来添加所需的类。

$('#pass').keyup(function (e) {
    var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
    var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
    var enoughRegex = new RegExp("(?=.{6,}).*", "g");
    if (false == enoughRegex.test($(this).val())) {
        $('#passstrength').html('Minimum 6 znaków');
    } else if (strongRegex.test($(this).val())) {
        $('#passstrength').addClass('ok');
        $('#passstrength').removeClass('alert');
        $('#passstrength').removeClass('error');
        $('#passstrength').html('Silne!');
    } else if (mediumRegex.test($(this).val())) {
        $('#passstrength').addClass('alert');
        $('#passstrength').removeClass('ok');
        $('#passstrength').removeClass('error');
        $('#passstrength').html('Średnie!');
    } else {
        $('#passstrength').addClass('error');
        $('#passstrength').removeClass('ok');
        $('#passstrength').removeClass('alert');
        $('#passstrength').html('Słabe!');

    }
    return true;
});

The addClass adds the specified class(es) to each element in the set of matched elements. addClass将指定的类添加到匹配元素集中的每个元素。 So use that to achieve what you want. 因此,使用它来实现您想要的。

The issue is with this $('#passstrength').className 问题在于这个$('#passstrength').className

className is native javascript method to set or return the class className是用于设置或返回类的本机javascript方法

where as $('#passstrength') is a jquery object, className will not work with this jquery object 因为$('#passstrength')是一个jquery对象,所以className不能与此jquery对象一起使用

But it will work with document.getElementById('passstrength').className='yourClassName' 但是它将与document.getElementById('passstrength').className='yourClassName'

and with jquery addClass & removeClass will work 并使用jQuery addClassremoveClass将工作

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM