检查属性对于纯javascript元素是否有效
我的程序在DOM元素上动态设置属性。我想防止设置不正确的属性。例如:检查属性对于纯javascript元素是否有效,javascript,dom,Javascript,Dom,我的程序在DOM元素上动态设置属性。我想防止设置不正确的属性。例如: function set(element,name,value){ if(name is a bad attribute for element) throw 'problem'; element.setAttribute(name,value); } 我想我可以在设置属性名称之前使用hasaAttribute来验证属性名称,但我不能,因为在我第一次设置属性之前,即使对于有效的属性,它也会返回fa
function set(element,name,value){
if(name is a bad attribute for element)
throw 'problem';
element.setAttribute(name,value);
}
我想我可以在设置属性名称之前使用hasaAttribute来验证属性名称,但我不能,因为在我第一次设置属性之前,即使对于有效的属性,它也会返回false。所以这两件事都是假的:
button.hasAttribute('typo');
button.hasAttribute('type');
如何验证属性名称是否有效?按钮具有
类型
属性(默认设置为“提交”),但没有属性。区分属性和属性很重要。像type
、src
、href
、name
、id
、for
等都是DOM元素的属性。大多数现代浏览器都允许您使用setAttribute()
和getAttribute()
获取和设置它们,但绝对没有必要这样做,而且在旧版本的Internet Explorer中也不起作用。我使用setAttribute是因为button.type='button'会在iPad的Safari上引发异常。