Foros del Web » Programando para Internet » Javascript »

obtener title de a href a través de javascript

Estas en el tema de obtener title de a href a través de javascript en el foro de Javascript en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original var elements = document. getElementById ( 'simulacion_tabla' ) . getElementsByClassName ( 'col1' ) ;         ...
  #1 (permalink)  
Antiguo 22/03/2017, 07:23
 
Fecha de Ingreso: enero-2016
Mensajes: 21
Antigüedad: 8 años, 3 meses
Puntos: 0
obtener title de a href a través de javascript

Código Javascript:
Ver original
  1. var elements = document.getElementById('simulacion_tabla').getElementsByClassName('col1');                              
  2.         for (var i=0; i<elements.length; i++){
  3.              
  4.         elements[i].insertAdjacentHTML("beforeend", "<input type='button' onClick='buscarGoogle()' value='BUSCAR' />");
  5.         }
con este código conseguí añadir un botón, con ayuda de un compañero, a un listado de una página. (aparte añadí la función buscarGoogle que aún no está implementada)
Ahora quiere implementar esa función para en un futuro buscar en google con un click del botón el texto que hay en el enlace de ese listado, algo así:
Código Javascript:
Ver original
  1. var elements = document.getElementById('simulacion_tabla').getElementsByClassName('col1');                              
  2.         for (var i=0; i<elements.length; i++){
  3.              
  4.         elements[i].insertAdjacentHTML("beforeend", "<input type='button' onClick='buscarGoogle()' value='BUSCAR' />");
  5.        
  6.            
  7.         function buscarGoogle() {
  8.                 var elementos2 = elements[i].getElementsByTagName('a');
  9.                    
  10.                         alert (elementos2[i].innerHTML);
  11.                    
  12.         }
  13.         }
En esta ocasión probé con innerHTML ya que ví por el foro que el .value no funcionaba para estos casos; y como he pomprobado tampoco funciona el .title aunque dentro <a href> sí que hay un title=nombre_que_quiero buscar. Pero tampoco funciona.
Probé también iterando elementos2 aunque el array sólo tiene un elemento.
Probé poniendo la función fuera del for que busca los "col1", algo así:
Código Javascript:
Ver original
  1. var elements = document.getElementById('simulacion_tabla').getElementsByClassName('col1');                              
  2.         for (var i=0; i<elements.length; i++){
  3.              
  4.         elements[i].insertAdjacentHTML("beforeend", "<input type='button' onClick='buscarGoogle(this)' value='BUSCAR' />");
  5.        
  6.             }
  7.         function buscarGoogle() {
  8.                 var elementos2 = this.getElementsByTagName('a');
  9.                    
  10.                         alert (elementos2[i].innerHTML);
  11.                    
  12.        
  13.         }
Pero no funciona y no estoy seguro de estar usando bien el this...
Agradezco cualquier comentario para poder obtener ese valor o incluso para ya obtenido buscarlo en google luego (aunque de momento no he llegado a ese punto)
La página donde estoy probando el código a traves de shell (en un futuro a traves de greasemonkey) es un listado de empresas de www.expansion.com por si alguien quiere probarlo.
Gracias
  #2 (permalink)  
Antiguo 22/03/2017, 11:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: obtener title de a href a través de javascript

Como bien dices, no estás utilizando correctamente la palabra reservada this que, en el contexto en el que la ubicas, hace referencia al objeto global window. Veo que pasas como argumento a la función al botón al cual se le está dando el clic, mediante la palabra reservada this; pero luego intentas buscar elementos <a> dentro del mismo (con el error mencionado antes del uso de la palabra reservada this), lo cual no tiene sentido porque un botón no puede contener a un elemento de enlace. Además, debes tener en cuenta que, el método .getElementsByTagName(), devuelve un conjunto de elementos, básicamente un NodeList. Así fuera un solo elemento encontrado, siempre será una lista de nodos la devuelta y tendrás que acceder al elemento en cuestión mediante un índice, como en los arreglos, que es lo que intentas hacer en tu ejemplo, sin tomar en cuenta que esa variable i no existe en el contexto de la función.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: innerhtml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:46.