JavaScript document.getElementById 有简写吗?或者有什么方法可以定义一个?它得到重复重复输入是在和超过。
getElementById 的 JavaScript 简写
IT技术
javascript
2021-03-14 14:12:56
6个回答
var $ = function( id ) { return document.getElementById( id ); };
$( 'someID' )
我在这里使用了$
,但您可以使用任何有效的变量名。
var byId = function( id ) { return document.getElementById( id ); };
byId( 'someID' )
要保存额外的字符,您可以像这样污染 String 原型:
pollutePrototype(String, '绎', {
configurable: false, // others must fail
get: function() {
return document.getElementById(this);
},
set: function(element) {
element.id = this;
}
});
function pollutePrototype(buildIn, name, descr) {
var oldDescr = Object.getOwnPropertyDescriptor(buildIn.prototype, name);
if (oldDescr && !oldDescr.configurable) {
console.error('Unable to replace ' + buildIn.name + '.prototype.' + name + '!');
} else {
if (oldDescr) {
console.warn('Replacing ' + buildIn.name + '.prototype.' + name + ' might cause unexpected behaviour.');
}
Object.defineProperty(buildIn.prototype, name, descr);
}
}
它适用于某些浏览器,您可以通过以下方式访问元素:
document.body.appendChild(
'footer'.绎 = document.createElement('div')
);
'footer'.绎.textContent = 'btw nice browser :)';
我几乎是随机选择了房产的名称。如果你真的想使用这个速记,我建议你想出一些更容易输入的东西。
您可以轻松地自己轻松创建速记:
function getE(id){
return document.getElementById(id);
}
一个快速的贡献替代方案:
HTMLDocument.prototype.e = document.getElementById
然后就这样做:
document.e('id');
有一个问题,它在不允许您扩展原型的浏览器(例如 IE6)中不起作用。
id 被保存到window
.
HTML
<div id='logo'>logo</div>
JS
logo.innerHTML;
和写一样:
document.getElementById( 'logo' ).innerHtml;
我不建议使用前一种方法,因为它不是常见的做法。
其它你可能感兴趣的问题