Foros del Web » Programando para Internet » Javascript »

getElementsByClassName VS querySelectorAll

Estas en el tema de getElementsByClassName VS querySelectorAll en el foro de Javascript en Foros del Web. Buenas a todos, Ante todo, mis saludos, soy nueva en el foro. Me estoy volviendo loca con un tema que seguro alguien podrá ayudarme. Supongo ...
  #1 (permalink)  
Antiguo 16/10/2014, 01:06
 
Fecha de Ingreso: octubre-2014
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
getElementsByClassName VS querySelectorAll

Buenas a todos,

Ante todo, mis saludos, soy nueva en el foro.
Me estoy volviendo loca con un tema que seguro alguien podrá ayudarme. Supongo que será una pregunta básica para muchos, pero no soy capaz de dar con la solución:

Estoy con un código en VBScript que automatice el login en una determinada pagina web.
Con versiones IE9 y superiores el código funciona, pero con IE8 no va.
El error salta en la línea siguiente:

objIE.Document.getElementsByClassName("ctBttOn")(0 ).click

Entiendo que es porque IE 8 no es compatible con esta función, y por lo que parece hay que utilizar el código objIE.Document.querySelectorAll

El caso es que soy nula para hacerlo funcionar, si pongo esto, no funciona:

objIE.Document.querySelectorAll(".ctBttOn")(0).cli ck

Que estoy haciendo mal? como digo soy muy novata....

Gracias!!
  #2 (permalink)  
Antiguo 16/10/2014, 02:37
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: getElementsByClassName VS querySelectorAll

Bienvenida a FDW

Si deseas tomar al primer elemento del conjunto de elementos cuya clase es 'ctBttOn', el índice, que en este caso es el cero, debe de ir entre corchetes, así:

Código Javascript:
Ver original
  1. objIE.document.querySelectorAll(".ctBttOn")[0]

Aunque, si vas a trabajar con un solo elemento, puedes utilizar el método querySelector:

Código Javascript:
Ver original
  1. objIE.document.querySelector(".ctBttOn")
Saludos
__________________
«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
  #3 (permalink)  
Antiguo 16/10/2014, 03:37
 
Fecha de Ingreso: octubre-2014
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: getElementsByClassName VS querySelectorAll

Ante todo, muchas gracias por tu respuesta.

Tomo nota de lo de los corchetes, no obstante, una vez tomado el elemento, como hago para que "pinche" en el boton?
es decir, tengo:

objIE.document.querySelectorAll(".ctBttOn")[0]

Y necesito un click. Lo intento de esta manera:

objIE.document.querySelectorAll(".ctBttOn")[0].click

Pero me devuelve el error "se esperaba final de instrucción", con lo cual hay alguna expresión que me falta.

Sera alguna tontería, pero para las novatas como yo, esto es un mundo...

Gracias de nuevo!
  #4 (permalink)  
Antiguo 16/10/2014, 08:45
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: getElementsByClassName VS querySelectorAll

Cita:
objIE.document.querySelectorAll(".ctBttOn")[0].click
Click es un método, se pone con "paréntesis" para que se ejecute:

elemento.click();
  #5 (permalink)  
Antiguo 17/10/2014, 05:41
 
Fecha de Ingreso: octubre-2014
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: getElementsByClassName VS querySelectorAll

Muchas gracias por tu respuesta.

No consigo que funcione. Pongo lo siguiente:

objIE.document.querySelectorAll(".ctBttOn")[0].click() y salta el error "se esperaba final de instrucción". Lo estoy poniendo mal?

Por si sirve de ayuda, la sección correspondiente en el código de la web, es este:

<td colspan="2" align="right"><a class="ctBttOn" onclick="conectar();return false;" href="aceptar">Entrar </a><input border="0" src="../../int/img/brand.gif" type="image"></td>

Muchas gracias!

Etiquetas: funcion
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 21:08.