如何切换元素';使用纯JavaScript创建属性?
在我写这篇文章时出现的大多数类似问题是(用户希望使用纯JS切换元素的类)或(用户希望使用jQuery切换其他属性) 我的问题是两者的混合。我知道存在使用纯JS切换元素类的如何切换元素';使用纯JavaScript创建属性?,javascript,html,Javascript,Html,在我写这篇文章时出现的大多数类似问题是(用户希望使用纯JS切换元素的类)或(用户希望使用jQuery切换其他属性) 我的问题是两者的混合。我知道存在使用纯JS切换元素类的el.classList.toggle()方法,但我希望使用纯JS切换不同的属性,特别是一些单选按钮的选中的属性,因为当选择不同的选项时,这(令人烦恼的)不会改变 是否可以使用纯JS在我的两个单选按钮上切换checked属性(切换的意思是,如果元素存在,则从元素中删除该属性,如果不存在,则添加该属性) radios=docum
el.classList.toggle()
方法,但我希望使用纯JS切换不同的属性,特别是一些单选按钮的选中的属性,因为当选择不同的选项时,这(令人烦恼的)不会改变
是否可以使用纯JS在我的两个单选按钮上切换checked
属性(切换的意思是,如果元素存在,则从元素中删除该属性,如果不存在,则添加该属性)
radios=document.getElementsByName(“地板”);
对于(i=0;i
一楼
一楼
我没有测试这个,但这个应该可以
radios = document.getElementsByName("Floor");
for (i = 0; i < radios.length; i++) {
radios[i].addEventListener('change', function () {
if ( this.checked ) {
this.setAttribute("checked", "false");
} else {
this.setAttribute("checked", "true");
}
}, false);
}
radios=document.getElementsByName(“地板”);
对于(i=0;i
属性没有切换方法
您可以使用:
elm[elm.hasAttribute('hidden')?'removeAttribute':'setAttribute']('hidden','')
或
elm.hasAttribute('hidden')?removeAttribute(“隐藏”):setAttribute(“隐藏”)
编辑:现在有了属性的切换方法
elm.toggleAttribute('hidden')
实际上有一个用于布尔属性的元素。toggleAttribute
方法
但是,由于IE不支持它,您可能需要添加,这肯定会很好地工作
const attrToggle = (el, attr) => el.getAttribute(attr) == 'false' ? el.setAttribute(attr, "true") : el.setAttribute(
attr, "false")
它类似于本机。元素。用于切换布尔属性的toggleAttribute(name)
另见-。由于“切换”不存在,您可以轻松创建一个函数来实现这一点。您为两个元素提供了相同的ID。这是无效的。它们可以有相同的名称,但ID是唯一的。可能是@Amy I的副本实际上只是从ChromeDev工具复制了这些行。实际上,我使用的是MVC,这些元素是由Html.RadioButton生成的,它似乎会自动将相同的id分配给这两个元素。在任何情况下,我认为这与我的问题无关使用“”检查属性是否已定义
this.toggleAttribute("checked");