Javascript 更改输入元素的样式';父母

Javascript 更改输入元素的样式';父母,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想更改输入元素的父元素样式,当它被选中时 <div> <!--- this is the parent element ---> <input type="radio" data-dynamic-update="1" name="virtuemart_paymentmethod_id" id="payment_id_3" value="3" checked="checked"> </div> 但是它不起作用。。我怎样才能做到这一点?拿起

我想更改输入元素的父元素样式,当它被选中时

<div>  <!--- this is the parent element ---> 
  <input type="radio" data-dynamic-update="1" name="virtuemart_paymentmethod_id" id="payment_id_3" value="3" checked="checked">
</div>
但是它不起作用。。我怎样才能做到这一点?

拿起小提琴:

获取元素对象时出现问题:

$('#payment_id_3').click(function(){
    $('#payment_id_3').parent().css({"background-color": "green", "border": "1px solid green"});
});

您应该只对所有对象使用jQuery,如下所示:

var x = $("#payment_id_3");
x.click(function(){
    $(this).parent().css({"background-color": "green", "border": "1px solid green"});
});

如果您使用的是jQuery,请尝试以下操作:

$('#payment_id_3').on("change", function(){
    $(this).parent().css({"background-color": "green", "border": "1px solid green"});
});

下面是一个在选中复选框的情况下更改div的示例

$('#payment_id_3').click(function(){      
  if($(this).prop('checked')){ // if checked
    $(this).parents('div').css('background-color','red');
  }
  else{ // if not checked
    $(this).parents('div').css('background-color','teal');
  }  
})

在这里,您可以查看正在进行的操作。

这是您可以执行的操作。此示例代码演示如何使用多个单选按钮并更改父级
div
的样式


#母公司{
宽度:100px;
高度:200px;
背景颜色:橙色;
}
绿色
粉红色
紫色
红色 $(“#父输入[type=radio]”)。在('click',function()上{ var theId=$(this.attr('id'); 如果(theId=“绿色”) { $(“#父项”).css({“背景色”:“绿色”}); } 否则,如果(theId==“粉色”) { $(“#父项”).css({“背景色”:“粉色”}); } else if(theId==“紫色”) { $(“#父项”).css({“背景色”:“紫色”}); } 其他的 { $(“#父项”).css({“背景色”:“红色”}); } })
解决方案更新为“更改”事件和“文档准备就绪”事件:

注意:我已将“收音机”改为复选框。
编辑:更新了JSFIDLE链接和代码

谢谢。它起作用了。。“onload”而不是“click”怎么样?您可以使用
更改单击。on('change',
并使用触发器触发任何事件
$('payment_id_3')。触发器('change');
请参见工作示例
$('#payment_id_3').click(function(){      
  if($(this).prop('checked')){ // if checked
    $(this).parents('div').css('background-color','red');
  }
  else{ // if not checked
    $(this).parents('div').css('background-color','teal');
  }  
})
$(document).ready(function() {
  $('#payment_id_3').on('change',function(){
    if (this.checked) { //Checked CSS
      $('#payment_id_3').parent().css({
        'background-color': 'green',
        'border': '1px solid green'
      });
     } else { // unchecked CSS
       $('#payment_id_3').parent().css({
         'background-color': 'red',
         'border': '1px solid black'
       });
     }
  });
  $('#payment_id_3').trigger('change');
});