Path: csiph.com!.POSTED.194-73-239-109.cust.centrio.cz!not-for-mail From: Cezary Tomczyk Newsgroups: comp.lang.javascript Subject: Re: Inserting stuff received with AJAX into the DOM Date: Sun, 20 Aug 2017 15:55:21 +0200 Organization: csiph.com Internet News Service Message-ID: References: <7e54d58e-0ce6-4bb5-9f07-f65b69a94a64@googlegroups.com> <5846bd55-f0bd-4088-a596-aba50eef32a5@googlegroups.com> <11843581.uLZWGnKmhe@PointedEars.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sun, 20 Aug 2017 13:55:24 +0000 (UTC) Injection-Info: csiph.com; posting-host="194-73-239-109.cust.centrio.cz:109.239.73.194"; logging-data="88733"; mail-complaints-to="admin@kev009.com" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 In-Reply-To: <11843581.uLZWGnKmhe@PointedEars.de> Content-Language: en-GB Xref: csiph.com comp.lang.javascript:33819 On 20/08/2017 12:16, Thomas 'PointedEars' Lahn wrote: > Stefan Ram wrote: > >> bit-naughty@hotmail.com writes: >>> Just to add - I would like to add "rt" into the DOM tree as a >>>
*with a particular id* - how do I do that?? >> >> I'm not an expert in DOM scripting, here is an untested attempt: > > s/DOM// > >> { const text = document.createTextNode( rt ); >> const par = document.createElement( 'p' ); par.appendChild( text ); >> const div = document.createElement( 'div' ); div.appendChild( par ); >> div.setAttribute( 'id', 'particularid' ); >> whereyouwanttoappendit.appendChild( div ); } > > Using the “const” keyword makes this code unnecessily incompatible. It is > also questionable whether “const” satisfies the semantics of the code as the > referred values are highly mutable. > > The first thing that one wants to do is to test each return values before > one uses it: > > if (par && text) par.appendChild(text); > > Even better, in a function is the “gauntlet” or “early return” approach: > > if (!(par && text)) return …; My approach would be a bit different. I would rather not do that as "if" statement here tends to hides the potential error. Better, in my opinion, is to use directly: par.appendChild(text); "par" is always defined, but text doesn't have to be or can be passed as a non-string type. In that case executing par.appendChild(text); will throw DOM exception and the error can be spotted easily. [...] -- Cezary Tomczyk http://www.ctomczyk.pl/