简体   繁体   English

使用javascript更改父范围元素的类名

[英]change classname of parent span element using javascript

how can we change classname of parent span element on click of input radio button. 单击输入单选按钮如何更改父范围元素的类名。

 <label for="L"> <span class="lbllevel1"> <span class="label-size">L</span> <input id="L" name="size" type="radio" value="L"> </span> </label> 

I want to add "selected" class to span element which is with class "lbllevel1" on click of radio button. 我想单击单选按钮时将“ selected”类添加到跨度为“ lbllevel1”类的元素。

Basically, i need output as <span class="lbllevel1 selected"> when radio button is clicked 基本上,单击单选按钮时,我需要输出为<span class="lbllevel1 selected">

you can add an event listener to radio button for click event or change event, use document.getElementById('L') to get the input, and inside event handler function use e.currentTarget to get current clicked input, you can use .classList += to add class to element, something like this: 您可以将事件监听器添加到单击事件或更改事件的单选按钮,使用document.getElementById('L')获取输入,事件处理函数内部使用e.currentTarget获取当前单击的输入,可以使用.classList +=向元素添加类,如下所示:

 var input = document.getElementById('L'); input.addEventListener("click", function(e){ e.currentTarget.parentElement.classList += ' selected'; }) 
 .selected{ background-color:#888888; } 
 <label for="L"> <span class="lbllevel1"> <span class="label-size">L</span> <input id="L" name="size" type="radio" value="L"> </span> </label> 

var lInput = document.getElementById("L");
lInput.addEventListener("click", function() {
    lInput.parentNode.classList.add("selected");
})

You could listen to the change event of radio by then add parent element with selected class if radio is checked: 如果selected了单选,则可以通过selected添加类的父元素来收听单选的更改事件:

document.querySelector("#L").addEventListener("change", function () {
  // check if radio is checked
  if (this.checked)
  {
     // add .selected class to parent
     this.parentElement.classList.add("selected");
  }
});

working copy 工作副本

<label for="L">
<span class="lbllevel1">
      <span class="label-size">L</span>
      <input id="L" name="size" onclick="changeAttr(this)" type="radio" 
value="L">
  </span>
</label>

<script>

 function changeAttr(ele)
{
    ele.parentElement.classList.add('newClass');
}

</script>

Please see if this is helpful or not :) 请查看这是否有帮助:)

Check through name 查看姓名

if($("input:radio[name='Name']").is(":checked")) {
         //write your code         
}

Check through class 上课检查

if($("input:radio[class='className']").is(":checked")) {
     //write your code         
}

Check through data 查看数据

if($("input:radio[data-name='value']").is(":checked")) {
         //write your code         
}

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

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