Article View: pl.comp.lang.javascript
Article #51701Re: dlaczego firstChild oraz childNodes[0] mam undefined?
From: Cezary Tomczyk
Date: Wed, 15 Mar 2017 08:45
Date: Wed, 15 Mar 2017 08:45
69 lines
3545 bytes
3545 bytes
On 15/03/2017 06:20, Jivanmukta wrote:
> Mam na stronie:
>
> <div id="client_mobile_field">
> <div class="label"><label class="obligatory">Telefony
> komórkowe:</label></div>
> <div class="control">
> <div>
> <?php echo my_form_input('client_mobile1',
> 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'); ?>
> </div>
> <div>
> <?php echo my_form_input('client_mobile2',
> 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'); ?>
> </div>
> </div>
> <div class="tip">...<b>albo</b> telefon komórkowy
> (9-cyfrowy)...</div>
> </div>
>
> 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
Technical Details
Message-ID:
<oaauv5$1i7t$1@csiph.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin3!goblin1!goblin.stu.neva.ru!feed.usenet.farm!feeder2.usenet.farm!2.eu.feeder.erje.net!feeder.erje.net!1.us.feeder.erje.net!csiph.com!.POSTED.204-73-239-109.cust.centrio.cz!not-for-mailReferences:
<oaaiu9$jmk$1@news.icm.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin3!goblin1!goblin.stu.neva.ru!feed.usenet.farm!feeder2.usenet.farm!2.eu.feeder.erje.net!feeder.erje.net!1.us.feeder.erje.net!csiph.com!.POSTED.204-73-239-109.cust.centrio.cz!not-for-mail From: Cezary Tomczyk <cezary.tomczyk@gmail.com> 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: <oaauv5$1i7t$1@csiph.com> References: <oaaiu9$jmk$1@news.icm.edu.pl> Mime-Version: 1.0 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: <oaaiu9$jmk$1@news.icm.edu.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit