Path: csiph.com!.POSTED.204-73-239-109.cust.centrio.cz!not-for-mail From: Cezary Tomczyk Newsgroups: pl.comp.lang.javascript Subject: Re: dlaczego firstChild oraz childNodes[0] mam undefined? Date: Wed, 15 Mar 2017 09:45:23 +0100 Organization: csiph.com Internet News Service Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 15 Mar 2017 08:45:25 +0000 (UTC) Injection-Info: csiph.com; posting-host="204-73-239-109.cust.centrio.cz:109.239.73.204"; logging-data="51453"; mail-complaints-to="admin@kev009.com" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 In-Reply-To: Xref: csiph.com pl.comp.lang.javascript:3288 On 15/03/2017 06:20, Jivanmukta wrote: > Mam na stronie: > >
>
>
>
> my_set_value('client_mobile1', $fullAnnouncementNo, $announcement), > 'id="client_mobile1" maxlength="16" size="16" style="width: 16ex" > class="mobile" onfocus="onFocusElement(this.id);" > onblur="onBlurElement(this.id);"'), > form_error('client_mobile1'); ?> >
>
> my_set_value('client_mobile2', $fullAnnouncementNo, $announcement), > 'id="client_mobile2" maxlength="16" size="16" style="width: 16ex" > class="mobile" onfocus="onFocusElement(this.id);" > onblur="onBlurElement(this.id);"'), > form_error('client_mobile2'); ?> >
>
>
...albo telefon komórkowy > (9-cyfrowy)...
>
> > Podczas obsługi zdarzenia onfocus elementu client_mobile1 potrzebuję > dobrać się do jedo etykiety. Robię to tak: > > function divLabelOf(elem) { > if (elem) { > var p = elem; > while (p.className != 'control') { > p = p.parentNode; > } > p = p.parentNode; > alert("div " + p.id); > alert("firstChild " + p.firstChild.id); > alert("childNodes[0] " + p.childNodes[0].id); > return p.firstChild; // powinno być div > } > return null; > } > > Wyświetla mi się: > > div client_mobile_field > firstChild undefined > childNodes[0] undefined > > Dlaczego undefined? Jak poprawić funkcję divLabelOf? Byłbym wdzięczny za > podpowiedź. Sprawdź, jaki obiekt kryje się pod p.firstChild. Może zamiast p.firstChild użyj q.querySelector('tutaj CSS selector do żądanego elementu'). A poza tym, zrezygnuj z onfocus i onblur inline i skorzystaj z delegacji zdarzeń (event delegation): https://bfkot.wordpress.com/2010/09/02/event-delegation-delegowane-nasluchy-czyli-wydarzenia-w-delegacji-czesc-1/ -- Cezary Tomczyk https://www.aslint.org/ - walidacja Accessibility Blokowanie automatycznego odtwarzania video na gazeta.pl w Google Chrome: https://goo.gl/0kCRLS