我想在Javascript中创建类似className的IdName属性

时间:2018-04-14 12:45:43

标签: javascript html

我是JS的新手 我想使用我创建的idName将Id添加到任何标记。

var x= Element;
x.prototype.idName= function(value){ this.id= value}

这样可行,但我想写类似className

示例:

this.className= "class value"

我想:

this.idName= "id value"

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以为setter设置Object.prototype,并在设置属性时检查该元素是否具有标记名称:

Object.defineProperty(Object.prototype, 'idName', {
    set : function(value) {
        if(typeof this.tagName !== 'undefined') {
            this.id = value;
        }
    }
});

Object.defineProperty(Object.prototype, 'idName', {
	set : function(value) {
		if(typeof this.tagName !== 'undefined') {
			this.id = value;
		}
	}
});

var element = document.querySelector('.myelement');
element.idName = 'foo';

console.log(document.getElementById('foo'));
<div class="myelement"></div>