在javascript中更改颜色文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在javascript中更改颜色文本相关的知识,希望对你有一定的参考价值。

我是javascript的新手,我想在下面的代码中更改不同类的颜色。我希望例如类'ok'颜色为绿色,类'错误'颜色为红色。

$('#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;
});
答案

问题在于这个$('#passstrength').className

className是用于设置或返回类的本机javascript方法

如果$('#passstrength')是一个jquery对象,className将无法使用此jquery对象

但它适用于document.getElementById('passstrength').className='yourClassName'

并与jquery addClassremoveClass将工作

另一答案

您需要使用正确的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;
});

addClass将指定的类添加到匹配元素集中的每个元素。所以用它来实现你想要的。

以上是关于在javascript中更改颜色文本的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中更改颜色文本

使用颜色选择器更改片段中edittext的背景颜色

如何更改客户端javascript中文本的颜色?

使用 JavaScript 更改焦点占位符文本的颜色 [关闭]

UISegmentedControl 值更改时如何仅更改文本颜色?

AlertDialog 更改片段中的背景颜色 [重复]