JavaScript document.getElementById에 대한 속기가 있습니까? 아니면 내가 정의 할 수있는 방법이 있습니까? 그것은 그 반복적 인 재 입력을 얻을 이상 과 이상 .
답변
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로 요소를 가져 오는 것뿐만 아니라 클래스별로 요소를 가져 오는 경우 : P)
나는 다음과 같은 것을 사용한다.
function _(s){
if(s.charAt(0)=='#')return [document.getElementById(s.slice(1))];
else if(s.charAt(0)=='.'){
var b=[],a=document.getElementsByTagName("*");
for(i=0;i<a.length;i++)if(a[i].className.split(' ').indexOf(s.slice(1))>=0)b.push(a[i]);
return b;
}
}
사용법 : _(".test")
클래스 이름을 가지는 모든 요소를 반환 test
하고, _("#blah")
ID를 가진 요소를 반환합니다 blah
.
답변
<script>
var _ = function(eId)
{
return getElementById(eId);
}
</script>
<script>
var myDiv = _('id');
</script>
답변
아이디는 window
.
HTML
<div id='logo'>logo</div>
JS
logo.innerHTML;
다음과 같이 쓰는 것과 같습니다.
document.getElementById( 'logo' ).innerHtml;
일반적인 관행이 아니므로 이전 방법을 사용하지 않는 것이 좋습니다.