Seleccionar objecto descendente - Javascript - Portugal-a-Programar
Seleccionar objecto descendente
Por zero-cool, 12 de Julho de 2009 em Javascript
Publicado 12 de Julho de 2009
Há já alguns dias que me ando a debater com o seguinte: pretendo, na chamada de uma função que recebe o próprio objecto onde é clicado, aceder ao item de lista subordinado a ele, isto é, aceder ao objecto <ul> que está dentro dele. O que acontece é que não tenho conseguido arranjar forma de aceder... já tentei com jquery inclusivamente, mas não consegui (provavelmente não estou a usar a sintaxe correcta..)
<ul class="m1">
<li onclick="javascript:seleccao(this);">BlaBla
<ul class="m2">
<li>BluBu
function seleccao(obj) {
http://www.webdeveloper.com/forum/showthread.php?t=191069
Através dos childnodes deves conseguir lá chegar.
Se quiseres usar jquery, e partindo do princípio que o que pretendes é um menu, aqui seque um exemplo :
<li class="grey"></li>
<li class="grey"><li>
$('#menu ul').css({display: 'none'});
$('#menu li.green').click(function() {
var p = $(this).parent().get(0);
var t = offset.top;
var l = offset.left + 166;
if ($(p).attr('id') != 'menu') {
t = 'auto';
top : t,
left : l,
$(this).find('ul:first').css({visibility: 'hidden'});
Este script suporta menus multinível. O offset que vês no javascript é para criar o submenu imediatamente ao lado do parent (na horizontal, menu vertical). Se precisares de ajuda a implementar isso, apita.
Obrigado pela resposta de ambos.
De facto, o que eu procurava não estava directamente naquilo que me indicaram, mas continham uma pista que me levou a tentar algumas coisas... e a solução foi: "obj.getElementsByTagName", sendo obj o "this" passado por argumento na função, pois this = document.getElementById() por definição (espero não ter dito uma grande asneira...)