w3schools variable tutorial javascripts getelement javascript dom

variable - JavaScript: obtener todo el último elemento en conjunto



dom javascript tutorial (5)

Dependiendo de si alguna vez volverá a utilizar la matriz, simplemente podría usar el método pop() una vez para eliminar el último elemento.

Este es mi código:

function insert(){ var loc_array = document.location.href.split(''/''); var linkElement = document.getElementById("waBackButton"); var linkElementLink = document.getElementById("waBackButtonlnk"); linkElement.innerHTML=loc_array[loc_array.length-2]; linkElementLink.href = loc_array[loc_array.length]; }

Quiero que linkElementLink.href agarre todo menos el último elemento de la matriz. En este momento está roto, y el artículo antes de que consiga el penúltimo elemento.


No estoy muy seguro de lo que estás tratando de hacer. Pero puedes usar slice para cortar la matriz:

loc_array = loc_array.slice(0, -1);


Si usa lodash uno puede emplear _.initial(array) :

_.initial (matriz) : Obtiene todo menos el último elemento de la matriz.

Ejemplo:

_.initial([1, 2, 3]); // → [1, 2]


Utilice pathname con preferencia a href para recuperar solo la parte de ruta del enlace. De lo contrario, obtendrás resultados inesperados si hay un sufijo ?query o #fragment , o si la ruta es / (no parent).

linkElementLink.href= location.pathname.split(''/'').slice(0, -1).join(''/'');

(Pero entonces, seguramente podrías decir :)

linkElementLink.href= ''.'';

No hagas esto:

linkElement.innerHTML=loc_array[loc_array.length-2];

Establecer HTML a partir de una cadena arbitraria es peligroso. Si la URL de la que tomó este texto contiene caracteres que son especiales en HTML, como < y & , los usuarios podrían inyectar marcas. Si pudieras obtener <script> en la URL (que no podrías, ya que no es válida, pero algún navegador podría permitirte de todos modos) tendrías agujeros de seguridad para crear scripts entre sitios.

Para establecer el texto de un elemento, en lugar de HTML, utilice document.createTextNode(''string'') y añádalo al elemento o código de sucursal para usar innerText (IE) o textContent (otros navegadores modernos).


linkElementLink.href = loc_array[loc_array.length]; agrega una nueva ranura vacía en la matriz porque las matrices se ejecutan desde 0 hasta array.length-1; Entonces regresas un espacio vacío.

linkElement.innerHTML=loc_array[loc_array.length-2]; si usa los corchetes, solo obtiene el contenido de un índice. No estoy seguro si eso es lo que quieres? La siguiente sección explica cómo obtener más de un índice.

Para obtener lo que necesita, necesita el .href que necesita para cortar el conjunto. linkElementLink.href = loc_array.slice(0,loc_array.length-1); o usar un negativo para contar desde el linkElementLink.href = loc_array.slice(0,-1); y esta es la forma más rápida.

También tenga en cuenta que al llegar a cosas directamente desde la matriz obtendrá el mismo método que .toString() , que es item1, item2, item3. Si no quiere las comas, necesita usar .join() . Al igual que array.join(''-'') devolvería item1-item2-item3. Aquí hay una lista de todos los métodos de matriz http://www.w3schools.com/jsref/jsref_obj_array.asp . Es un buen recurso para hacer esto.