javascript - 如果其文本等于某些文本,则更改选中的输入颜色

标签 javascript jquery html

我用一些单选按钮制作了两个表格。我用 css :before 选择器更改了它们。我使用很棒的字体而不是单选按钮。正如您所看到的代码,如果选中单选按钮并且其文本为“专家”,我将尝试更改颜色,然后添加具有不同颜色属性的类。我用点击事件做到了这一点,现在它正在工作。但我希望在页面加载时发生这种情况,而不是在点击之后发生。

任何帮助我将不胜感激

$(document).ready(function() {
    var radioBtn = $('form label span');
    radioBtn.click(function(){
        if ($(this).prev().find('input[type="radio"]:checked')) {
            if ($(this).text() === 'Expert') {
                $(this).addClass('greenBox');
            }
        }
        
    });
});
form {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 0;
}

form label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    cursor: pointer;
    margin-right: 10%;
    margin-bottom: 0;
}

form label input {
    display: none;
    overflow: hidden;
}
form label input+span {
    font-size: 12px;
}

form label input+span::before {
    content: '\f096';
    font-family: 'FontAwesome';
    font-size: 52px;
    font-style: normal;
    speak: none;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1.2;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: #aab3c3;
}


form label input:checked + span::before {
    content: '\f14a';
    color: #aab3c3;
    -webkit-animation: check 0.3s ease-in-out;
    animation: check 0.3s ease-in-out;
}

form label input:checked +span.greenBox::before {
    color: #4cd20b;
}

@-webkit-keyframes check {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0); 
    }
    70% {
        -webkit-transform: scale(1.1);
        transform: scale(1.1); 
    } 
    100% {
        -webkit-transform: scale(1);
        transform: scale(1); 
    } 
}

@keyframes check {
    0% {
        -webkit-transform: scale(0);
        transform: scale(0); 
    }
    70% {
        -webkit-transform: scale(1.1);
        transform: scale(1.1); 
    } 
    100% {
        -webkit-transform: scale(1);
        transform: scale(1); 
    } 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"
integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<div class="yetkinlik-wrapper row-fluid">
<div class="row-fluid gozlem-title">
    <div class="span2 empty"></div>
</div>
<div class="bag-kurma yetkinlik-guven row-fluid">
    <form action="" class="yetkinlik span5">
        <label>
            <input type="radio" name="radio" checked><span>Expert</span>
        </label>
        <label>
            <input type="radio" name="radio"><span>Intermediate</span>
        </label>
        <label>
            <input type="radio" name="radio"><span>Beginner</span>
        </label>
    </form>

    <form action="" class="guven span5">
        <label>
            <input type="radio" name="radio"><span>Expert</span>
        </label>
        <label>
            <input type="radio" name="radio"><span>Intermediate</span>
        </label>
        <label>
            <input type="radio" name="radio" checked><span>Beginner</span>
        </label>
    </form>
</div>

</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

.

最佳答案

可以在document.ready中添加如下代码实现绿框:

$('input[name=radio]:checked').each(function() {
    $(this).next().addClass('greenBox');
});

上面的代码会检查DOM就绪,如果有radiochecked,如果有,它会添加相关的类greenBox .

下面是更新后的代码:

$(document).ready(function() {
  $('input[name=radio]:checked').each(function() {
    if ($(this).next().text() === 'Expert')
      $(this).next().addClass('greenBox');
  });

  var radioBtn = $('form label span');
  radioBtn.click(function() {
    if ($(this).prev().find('input[type="radio"]:checked')) {
      if ($(this).text() === 'Expert') {
        $(this).addClass('greenBox');
      }
    }

  });
});
form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 0;
}

form label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  cursor: pointer;
  margin-right: 10%;
  margin-bottom: 0;
}

form label input {
  display: none;
  overflow: hidden;
}

form label input+span {
  font-size: 12px;
}

form label input+span::before {
  content: '\f096';
  font-family: 'FontAwesome';
  font-size: 52px;
  font-style: normal;
  speak: none;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1.2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  color: #aab3c3;
}

form label input:checked+span::before {
  content: '\f14a';
  color: #aab3c3;
  -webkit-animation: check 0.3s ease-in-out;
  animation: check 0.3s ease-in-out;
}

form label input:checked+span.greenBox::before {
  color: #4cd20b;
}

@-webkit-keyframes check {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  70% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes check {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  70% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">

<div class="yetkinlik-wrapper row-fluid">
  <div class="row-fluid gozlem-title">
    <div class="span2 empty"></div>
  </div>

  <div class="bag-kurma yetkinlik-guven row-fluid">
    <form action="" class="yetkinlik span5">
      <label>
<input type="radio" name="radio" checked><span>Expert</span>
</label>
      <label>
<input type="radio" name="radio"><span>Intermediate</span>
</label>
      <label>
<input type="radio" name="radio"><span>Beginner</span>
</label>
    </form>

    <form action="" class="guven span5">
      <label>
<input type="radio" name="radio"><span>Expert</span>
</label>
      <label>
<input type="radio" name="radio"><span>Intermediate</span>
</label>
      <label>
<input type="radio" name="radio" checked><span>Beginner</span>
</label>
    </form>
  </div>


</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

关于javascript - 如果其文本等于某些文本,则更改选中的输入颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530096/

相关文章:

javascript - 滚动条在 Internet Explorer 10 中显示不正确

javascript - 输入掩码动态掩码更改最后一位

jquery - 单击时隐藏 Twitter Bootstrap 导航折叠

jquery - jquery 会删除 css 样式吗?

html - 将 inline-svg 设置为 div 的背景

html - XMLHttpRequest 无法加载 http ://localhost:9090/receive. 请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - "id"如何使用 JSON 填充 jsTree

javascript - 如何解决通过 REST 服务上传文件时的 400() 错误

javascript - 需要将parentId添加到多维JSON数据数组中的child

html - 通过扩展按钮打开teamspeak服务器