Backbone.js Hello World example

I wanted to create sample app similar to Viral Patel's Angular H"Hello World" example: http://jsfiddle.net/viralpatel/nZ5sH/

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.min.js"></script>
<div id="app">    
    <p>Write some text in the box: <input class="greeting-input" type="text" /></p>
    <div class="greeting-output"></div>
</div>

<script type="text/x-handlebars-template" id="greeting-template">
    <h1>Hello {{text}}</h1> 
    <h4>Uppercase: {{uppercaseText}}</h4>
    <h4>Lowercase: {{lowercaseText}}</h4>
</script>

CSS

h1, h4 {
    margin: 20px 0 0 0;
    padding: 0;
}

JavaScript

// Our model
var Greeting = Backbone.Model.extend({ defaults: { text: ''} });
var greeting = new Greeting();

// Our view
var GreetingView = Backbone.View.extend({
    events: {
        'keyup .greeting-input': 'editText',
        'keydown .greeting-input': 'editText',
    },
    el: document.getElementById('app'),
    template: Handlebars.compile($('#greeting-template').html()), 
    initialize: function() {
        this.input = this.$el.find('.greeting-input');
        this.output = this.$el.find('.greeting-output');     
        
        this.listenTo(this.model, 'change', this.render);
    },
    render: function() {
        var text = this.model.get('text')
        var templateData = {
            text: text,
            uppercaseText: text.toUpperCase(),
            lowercaseText: text.toLowerCase()
        };
       
        this.output.html(this.template(templateData));        
        return this;
    },
    editText: function(e) {
        // For smooth effect we'll use 'keyup' to grab text, but 'keydown' for Delete & Backspace
        if (((e.which === 8 || e.which === 46) && e.type === 'keydown') || (e.type === 'keyup')) {   
             this.model.set('text', this.input.val().trim());
        }            
    }
});

var greetingView = new GreetingView({ model: greeting });
greetingView.render();