¿Hay alguna forma abreviada de JavaScript document.getElementById? ¿O hay alguna forma de que pueda definir uno? Se vuelve repetitivo volver a escribir eso una y otra vez .
javascript
Fox Wilson
fuente
fuente
Respuestas:
Aquí usé
$
, pero puedes usar cualquier nombre de variable válido.fuente
$
, felicitaciones por elegir eso también?"$
importa cuántas bibliotecas se utilicen si nunca las carga.var $ = document.getElementById.bind(document)
, perobind
no está disponible en todos los navegadores. Sin embargo, quizás sea más rápido, porque solo estoy usando métodos nativos. Solo quería agregar esto.Para guardar un personaje adicional, puede contaminar el prototipo String de esta manera:
Funciona en algunos navegadores y puede acceder a los elementos de esta manera:
He elegido el nombre de la propiedad casi al azar. Si realmente quisiera utilizar esta abreviatura, le sugiero que se le ocurra algo más fácil de escribir.
fuente
Puede crear taquigrafía fácilmente usted mismo:
fuente
Una alternativa rápida para contribuir:
Entonces solo haz:
Hay un problema, no funciona en navegadores que no le permiten extender prototipos (por ejemplo, IE6).
fuente
prototype.js
que hicieron exactamente lo mismo.(Abreviatura para no solo obtener elemento por ID, sino también obtener elemento por clase: P)
Yo uso algo como
Uso:
_(".test")
devuelve todos los elementos con nombre de clasetest
y_("#blah")
devuelve un elemento con idblah
.fuente
document.querySelectorAll
, en lugar de intentar emular una parte delquerySelectorAll
método en una función personalizada.fuente
las identificaciones se guardan en el
window
.HTML
JS
es lo mismo que escribir:
No sugiero usar el método anterior ya que no es una práctica común.
fuente
<div id="location"></div>
y las llamadaswindow.location
no funcionarán.Hay varias buenas respuestas aquí y varias bailan alrededor de la sintaxis similar a jQuery, pero ninguna menciona el uso real de jQuery. Si no está en contra de probarlo, consulte jQuery . Te permite seleccionar elementos súper fácil como este ..
Por ID :
Por clase CSS :
Por tipo de elemento :
fuente
No hay ninguno incorporado.
Si no le importa contaminar el espacio de nombres global, ¿por qué no?
EDITAR: cambié el nombre de la función para que sea algo inusual , pero corto y que no entre en conflicto con jQuery o cualquier otra cosa que use un
$
signo simple .fuente
Sí, se vuelve repetitivo usar la misma función una y otra vez cada vez con un argumento diferente:
Entonces, algo bueno sería una función que toma todos esos argumentos al mismo tiempo:
Entonces tendrías referencias a todos tus elementos almacenados en un objeto:
Pero aún tendría que enumerar todos esos identificadores.
Podría simplificarlo aún más si desea todos los elementos con identificadores:
Pero sería bastante caro llamar a esta función si tiene muchos elementos.
Entonces, teóricamente, si usara la
with
palabra clave, podría escribir un código como este:Pero no quiero promover el uso de
with
. Probablemente haya una mejor manera de hacerlo.fuente
Bueno, podrías crear una función abreviada, eso es lo que hago.
y luego, cuando querías conseguirlo, lo hacías
Además, otro truco útil que encontré es que si desea obtener el valor o el HTML interno de un ID de elemento, puede hacer funciones como esta:
¡Espero que te guste!
De hecho, hice una especie de mini biblioteca de JavaScript basada en toda esta idea. Aquí está.
fuente
Yo uso con frecuencia:
Creo que es mejor que una función externa (por ejemplo,
$()
obyId()
) porque puedes hacer cosas como esta:Por cierto, no use jQuery para esto, jQuery es mucho, mucho más lento que
document.getElementById()
una función externa como$()
obyId()
, o mi método: http://jsperf.com/document-getelementbyid-vs-jquery/5fuente
Si está en su propio sitio, considere usar una biblioteca como jQuery para darle esta y muchas otras abreviaturas útiles que también abstraen las diferencias del navegador. Personalmente, si escribiera suficiente código para que me molestara la mano, incluiría jQuery.
En jQuery, la sintaxis sería
$("#someid")
. Si luego desea el elemento DOM real y no el contenedor jQuery, lo es$("#someid")[0]
, pero lo más probable es que pueda hacer lo que esté buscando con el contenedor jQuery.O, si está usando esto en una consola de desarrollador de navegador, investigue sus utilidades integradas. Como alguien más mencionó, la consola de JavaScript de Chrome incluye un
$("someid")
método, y también puede hacer clic en un elemento en la vista "Elementos" de las herramientas para desarrolladores y luego hacer referencia a él$0
desde la consola. El elemento seleccionado anteriormente se convierte en$1
y así sucesivamente.fuente
Si el único problema aquí es escribir, tal vez debería obtener un editor de JavaScript con intellisense.
Si el propósito es obtener un código más corto, entonces podría considerar una biblioteca JavaScript como jQuery, o simplemente puede escribir sus propias funciones abreviadas, como:
Solía hacer lo anterior para un mejor rendimiento. Lo que aprendí el año pasado es que con las técnicas de compresión el servidor lo hace automáticamente por ti, por lo que mi técnica de acortamiento estaba haciendo que mi código fuera más pesado. Ahora estoy contento de escribir todo el documento.getElementById.
fuente
Si está solicitando una función de taquigrafía ...
o
fuente
Las funciones de flecha hacen que sea más corto.
fuente
id
argumento.envuelve el document.querySelectorAll ... un jquery como select
fuente
$('#myId')
, generalmente debería devolver ese HTMLElement, porque con suerte asignó ese id exactamente una vez. Pero si lo usa con consultas que pueden coincidir con varios elementos, se vuelve engorroso.Bueno, si la identificación del elemento no compite con ninguna propiedad del objeto global, no tiene que usar ninguna función.
editar: Pero no quieres hacer uso de esta 'función'.
fuente
Otro envoltorio:
Esto, en caso de que no quieras usar lo impensable , mira arriba.
fuente
Escribí esto ayer y lo encontré bastante útil.
Así es como lo usas.
fuente