是否可以使用 jquery 更改单击事件中单选按钮的颜色?

Is it possible to change the color of radio button on click event using jquery?

我的输入框是这样的

<div>
  <div>
    <input type="radio" name="radioBtn" value="true" id="radioYes" class="radioBtn"/><br />
    <span>Yes</span>
  </div>
  <div>
    <input type="radio" name="radioBtn" value="true" id="radioNo" class="radioBtn"/><br />
    <span>No</span>
  </div>
</div>

当用户单击这些单选按钮时,我将触发一个单击事件并且我想更改单选按钮的颜色。 我试过以下,但没有运气。它似乎没有将单选按钮的颜色更改为红色。我在这里遗漏了什么吗?还是我做错了什么?非常感谢任何意见。

提前致谢。

$("input[name^='radioBtn']").click(function (event) {

//Change color of radio button to red
$(".radioBtn").css("color","red");

if($("#radioYes").is(':checked')) {
//Do something
}else{
//Do something
}

});

注意:我只想在触发点击事件时更改单选按钮的颜色。我指定这个是因为还有其他调用可以修改此单选按钮的值,但是它们不会在单击事件时触发。

您可以在使用 :checked:after 检查的单选按钮上应用一些 CSS。

$("input[name^='radioBtn']").click(function(event) {
  $(this).addClass('test');
  if ($("#radioYes").is(':checked')) {
    //Do something
  } else {
    //Do something
  }

});
.test:checked:after {
  width: 15px;
  height: 15px;
  border-radius: 15px;
  top: -2px;
  left: -1px;
  position: relative;
  background-color: red;
  content: '';
  display: inline-block;
  visibility: visible;
  border: 1px solid white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <div>
    <input type="radio" name="radioBtn" value="true" id="radioYes" class="radioBtn" /><br />
    <span>Yes</span>
  </div>
  <div>
    <input type="radio" name="radioBtn" value="true" id="radioNo" class="radioBtn" /><br />
    <span>No</span>
  </div>
</div>

注意:您可以根据需要更改CSS属性。

.radioBtn {
  width: 0;
  height: 0;
  position: relative;
}

.radioBtn::after, .radioBtn::before {
  content: '';
  display: inline-block;
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid blue;
}

.radioBtn::before {
  width: 6px;
  height: 6px;
  left: 2px;
  top: 2px;
  border-color: transparent;
}

.radioBtn:checked::before {
  border-color: red;
  background-color: red;
}
.radioBtn:checked::after {
  border-color: red;
}

.parent {
  display: inline-flex;
}

label {
  margin-left: 10px;
}
<div class='parent'>
    <input type="radio" name="radioBtn" value="true" id="radioYes" class="radioBtn"/><br />
    <label for="radioYes">Yes</label>
  </div>
  <div class='parent'>
    <input type="radio" name="radioBtn" value="true" id="radioNo" class="radioBtn"/><br />
    <label for="radioNo">No</label>
  </div>

检查一下,我已经重新创建了您的要求。如果有任何需要,请告诉我。在这里,我使用输入的伪 类 创建了一个自定义元素。