Editor - David Taylor

My Photo

brandgym coaching services

  • Vision to Action
    Creating an inspiring brand vision, positioning and action plan, including Brand Purpose, Brand Revitalisation and Global Branding
  • Grow the Core
    Creating ideas to sell more of the core, including Turbo-charged Marketing Plans and Category Growth Visions
  • Brand Stretch
    Strategic innovation to create new products and services, including New Brand Devt, Brand Portfolio Strategy and Brand Architecture
  • brandgym partner network
    More about the opportunity to become a brandgym partner, and who we're looking for

brandgym books

« Warner's response to 50% of its market disappearing | Main | Life's about the journey, not the destination »



[NOTE: BEST SOLUTION YET IS AT BOTTOM OF THIS POST]That final solution doesn't work in even close to 99% of the cases becuase:1. It relies on users doing all their element finding by using document's getElementById method, which you have replaced with a method that lets you add Element 's prototyped methods to the found element. The problem is that elements can be searched for in many ways besides calling getElementById e.g. walking the DOM, getElementByTag, etc., etc.2. Your createElement method tries to do the same filtering, but what if elements are created by cloning? Or calling eval() or myriad other ways.


[woops, meant to put this at bottom of priueovs post]The best way I found to do this is to build off of the original behaviors proposal (because it catches every case) but to simplify it and speed it up.I started with the suggested approach, and it did work, but reading in the .htc file and binding the behavior for all my ~800 DOM elements slowed document load by a whopping 15 seconds or more.What I discovered, after some more googling, is that the .htc file is not needed at all. The behavior can be created as part of the CSS style, so for the example given here, one could simply do this:1. Implement the if ( !window.Element ) Element = function() {}; stuff that the author did2. Create the Element.prototype.isDescendantOf (for example) as the author did3. In your IE8-only .css file (or in HTML using the if IE8 trick the author uses) do this:* { behavior: expression(this.isDescendantOf = function(){return Element.prototype.isDescendantOf .apply(this, arguments);})}Voila! That's it!


why not use the inventors mehtod directly, and ask the DOM a direct question instead of playing around with words such as: isDescendantOf instead of going strait to:oKidd.parentElementand straightforwardly get its parent into the basket?!!You see, when ie was providing you the means to Fly accross the DOM, the bloody w3c was just starting to learn how to walk, and still they stumble upon them blody irrelevant nodes and empty characters exposing you to all possible accidents of the fall.or even more elegant solution, see if:oParent.children.kiddy //returns the kid if exists (kiddy is the ID of the childsame as oKiddy.parentElement // returns its parent, if kid existsoKiddy.parentElement == oParent //confirms true the kid is its true child.But this, this is overkill:Element.prototype.isDescendantOf = function( granpa ) {if ( typeof( granpa ) == 'string' ) {granpa = document.getElementById( granpa );}if ( !granpa ) {return false;}child = this;do {if (child == granpa ) {return true;}child = child.parentNode;}while ( child );return false;

Alberta Rencontres

I always find this to be amazingly true, without exception too, "We also need to recognize that, largely, those teachers who use technology the most effectively and lead the way with its use are also, by and large, excellent teachers with or without the technology." I've ordered my copy of 'The Element'.

Joao Santos

Thanks for this post David, I just saw Ken Robinson at the TED Conference, and he is so right about the need to change the way we educate people. I'm going to buy his book now!

About the 3 dimension model, it is very similar to the HEDGEHOG CONCEPT presented by Jim Collins in Good To Great Book, where he uses this model to describe what companies should do.

Joanna Allen

Great post, simple model put very well.

For business owners this can also support internal branding (loosely meaning - bonding with and helping to develop staff within a company). After all, if it is important for us to 'be in our element' then it translates that employees will perform far better if they too are in their element.

The biggest challenge often is convincing business owners, MDs and managers to consider this as a viable way forward toward measurable business growth. It often feels like a 'soft' solution to them - yet I feel it potentially has the most power of all.


I’m currently working on my own business plan and the process really emphasizes your point on bringing your whole self. If I’m going to build the business of my dreams it should reflect my personal values and be something I am willing to put myself behind 150%.


Excellent post David. I can totally connect with the overall thought as I recently made a career switch driven by these considerations and yes the 3rd one -"making enough money" was also a factor. "Enough" is the keyword there , not "lots". Regards. Asit

The comments to this entry are closed.