Existe alguma forma abreviada para o JavaScript document.getElementById? Ou existe alguma maneira de definir um? Fica redigitação repetitivo que mais e mais .
javascript
Fox Wilson
fonte
fonte
Respostas:
Aqui eu usei
$
, mas você pode usar qualquer nome de variável válido.fonte
$
, parabéns por escolher isso também?"$
se você nunca as carrega.var $ = document.getElementById.bind(document)
, masbind
não está disponível em todos os navegadores. Talvez seja mais rápido, porque estou usando apenas métodos nativos. Só queria adicionar isso.Para salvar um caractere extra, você pode poluir o protótipo String assim:
Funciona em alguns navegadores e você pode acessar os elementos da seguinte maneira:
Escolhi o nome da propriedade quase ao acaso. Se você realmente quiser usar esta abreviação, sugiro algo mais fácil de digitar.
fonte
Você pode criar abreviações facilmente:
fonte
Uma alternativa rápida para contribuir:
Depois é só fazer:
Há um problema, ele não funciona em navegadores que não permitem estender protótipos (por exemplo, IE6).
fonte
prototype.js
quais faziam exatamente a mesma coisa.(Abreviação para não apenas obter elemento por ID, mas também obter elemento por classe: P)
Eu uso algo como
Uso:
_(".test")
retorna todos os elementos com nome de classetest
e_("#blah")
retorna um elemento com idblah
.fonte
document.querySelectorAll
, em vez de tentar emular uma parte doquerySelectorAll
método em uma função personalizada.fonte
IDs são salvos no
window
.HTML
JS
é o mesmo que escrever:
Não sugiro usar o método anterior, pois não é uma prática comum.
fonte
<div id="location"></div>
e chamarwindow.location
não vai funcionar.Existem várias respostas boas aqui e várias estão dançando em torno da sintaxe semelhante à jQuery, mas nenhuma menciona realmente usar jQuery. Se você não é contra tentar, verifique o jQuery . Ele permite que você selecione elementos muito fáceis como este ..
Por ID :
Por classe CSS :
Por tipo de elemento :
fonte
Não há nenhum embutido.
Se você não se importa em poluir o namespace global, por que não:
EDITAR - mudei o nome da função para algo incomum , mas curto e não colidindo com jQuery ou qualquer outra coisa que usa um
$
sinal simples .fonte
Sim, ele fica repetitivo usar a mesma função mais e mais cada vez com um argumento diferente:
Então, uma coisa boa seria uma função que recebe todos esses argumentos ao mesmo tempo:
Então você teria referências a todos os seus elementos armazenados em um objeto:
Mas você ainda teria que listar todos esses ids.
Você poderia simplificar ainda mais se quiser todos os elementos com ids:
Mas seria muito caro chamar essa função se você tiver muitos elementos.
Então, teoricamente, se você usasse a
with
palavra-chave, você poderia escrever um código como este:Mas não quero promover o uso de
with
. Provavelmente existe uma maneira melhor de fazer isso.fonte
Bem, você poderia criar uma função abreviada, é o que eu faço.
e então, quando você quiser obtê-lo, basta fazer
Além disso, outro truque útil que descobri é que se você deseja obter o valor ou innerHTML de um ID de item, pode fazer funções como estas:
Espero que você goste!
Na verdade, fiz uma espécie de mini biblioteca javascript com base nessa ideia. Aqui está.
fonte
Eu freqüentemente uso:
Acho que é melhor do que uma função externa (por exemplo,
$()
oubyId()
) porque você pode fazer coisas assim:A propósito, não use jQuery para isso, jQuery é muito, muito mais lento do que
document.getElementById()
uma função externa como$()
oubyId()
, ou meu método: http://jsperf.com/document-getelementbyid-vs-jquery/5fonte
Se estiver em seu próprio site, considere usar uma biblioteca como a jQuery para fornecer este e muitos outros atalhos úteis que também abstraem as diferenças do navegador. Pessoalmente, se eu escrevesse código suficiente para ser incomodado por manuscritos, incluiria o jQuery.
Em jQuery, a sintaxe seria
$("#someid")
. Se você quiser o elemento DOM real e não o wrapper jQuery, é$("#someid")[0]
, mas provavelmente você pode fazer o que quiser com o wrapper jQuery.Ou, se você estiver usando isso em um console de desenvolvedor de navegador, pesquise seus utilitários integrados. Como outra pessoa mencionou, o console JavaScript do Chrome inclui um
$("someid")
método, e você também pode clicar em um elemento na visualização "Elementos" das ferramentas do desenvolvedor e fazer referência a ele$0
no console. O elemento selecionado anteriormente se torna$1
e assim por diante.fonte
Se o único problema aqui for digitar, talvez você deva apenas conseguir um editor de JavaScript com intellisense.
Se o objetivo é obter um código mais curto, você pode considerar uma biblioteca JavaScript como jQuery, ou pode apenas escrever suas próprias funções abreviadas, como:
Eu costumava fazer o acima para melhor desempenho. O que aprendi no ano passado é que, com as técnicas de compactação, o servidor faz isso automaticamente para você, então minha técnica de encurtamento estava na verdade tornando meu código mais pesado. Agora estou muito feliz em digitar todo o document.getElementById.
fonte
Se você está pedindo uma função abreviada ...
ou
fonte
As funções da seta são mais curtas.
fonte
id
argumento.envolva o document.querySelectorAll ... um jquery como select
fonte
$('#myId')
, ele normalmente deve retornar esse HTMLElement, porque você provavelmente atribuiu esse id exatamente uma vez. Mas se você o usasse com consultas que podem corresponder a vários elementos, ele se tornaria complicado.Bem, se o id do elemento não compete com nenhuma propriedade do objeto global, você não precisa usar nenhuma função.
editar: Mas você não quer fazer uso deste 'recurso'.
fonte
Outro invólucro:
Isso, caso você não queira usar o impensável , veja acima.
fonte
Escrevi isso ontem e achei muito útil.
É assim que você o usa.
fonte