[javascript] getElementById에 대한 자바 스크립트 약어

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;

일반적인 관행이 아니므로 이전 방법을 사용하지 않는 것이 좋습니다.