Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查属性对于纯javascript元素是否有效_Javascript_Dom - Fatal编程技术网

检查属性对于纯javascript元素是否有效

检查属性对于纯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

我的程序在DOM元素上动态设置属性。我想防止设置不正确的属性。例如:

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上引发异常。