Su código es correcto. Tal vez su problema es que no está pasando una identificación a la función AddBorder
, o que un elemento con esa ID no existe. O podría estar ejecutando su función antes de que el elemento en cuestión sea accesible a través del DOM del navegador.
para identificar el primer caso o determinar la causa del segundo caso, agregar estos como las primeras líneas dentro de la función:
alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));
que abrirá las ventanas emergentes cada vez que la función se llama, con el valor de id
y el valor de retorno de document.getElementById
. Si obtiene undefined
para la ventana emergente de número ID, no está pasando un argumento a la función. Si la identificación no existe, obtendría su número de identificación (¿incorrecto?) En la primera ventana emergente, pero obtenga null
en la segunda.
El tercer caso pasaría si su página web se ve como este, tratando de correr AddBorder
mientras que la página todavía se está cargando:
<head>
<title>My Web Page</title>
<script>
function AddBorder(id) {
...
}
AddBorder(42); // Won't work; the page hasn't completely loaded yet!
</script>
</head>
Para solucionar este problema, poner todo el código que utiliza AddBorder dentro de un evento onload
manejador:
// Can only have one of these per page
window.onload = function() {
...
AddBorder(42);
...
}
// Or can have any number of these on a page
function doWhatever() {
...
AddBorder(42);
...
}
if(window.addEventListener) window.addEventListener('load', doWhatever, false);
else window.attachEvent('onload', doWhatever);
De la manera en que lo ha hecho. Pero si quieres ser explícito, puedes cambiar 'id' por' id.toString() '. –
Sí, lo has hecho correctamente. Si "no funciona", entonces algo más está mal, como si realmente no hubiera un elemento con esa ID. –
Este código: 'getElementById (" horseThumb _ {$ id} ")' no es JavaScript, es PHP. Entonces es por eso que no funcionó para ti. – Domenic