On Tue, 28 Aug 2012 10:40:23 -0700, Niklas Laxström <niklas.laxst...@gmail.com> wrote:

On 28 August 2012 02:26, Daniel Friesen <dan...@nadir-seen-fire.com> wrote:
I ran into our coding conventions for creating elements in JS:
https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript#Creating_elements
var $hello = $('<div>').text( 'Hello' );
// Not '<div/>'
// Not '<div></div>'

This looks like some really bad advice.

The very reason I and others have been killing '<div/>' with fire is
that I was told it doesn't work in IE. Can you explain what is going
on?

If they're talking about jQuery that's a mistake on part of whoever told you that.

jQuery has a regexp internally that converts <tag ... /> anywhere in the input automatically into <tag ...></tag>. It's an intentional shortcut so that you don't have to specify the closing tag every time you're creating an element that you're going to add content to dynamically.

Personally I don't like '<div/>' because there is no such thing in
html. I could understand '<div>' as a shortcut for creating a div
element.

Unless the issue is clarified, I think that recommending to always use
valid html like <div></div> seems a much better option than either of
<div> or <div/>.

What would you think about bypassing all the pointless vs. discussion by adding something like `$.tag( 'div' )` or `$.create( 'div' );`?

  -Niklas



--
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name]


_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to