Javascript 单击按钮后,如何清除backbone.js中的文本字段?

Javascript 单击按钮后,如何清除backbone.js中的文本字段?,javascript,jquery,backbone.js,backbone-views,backbone.js-collections,Javascript,Jquery,Backbone.js,Backbone Views,Backbone.js Collections,我的输入在HTML文件中,我的按钮在js文件中。我是这里的初学者,请教我。我仍然对backbone.js感到困惑 var ListView = Backbone.View.extend({ el: $('body'), events: { 'click button#add': 'addItem' }, initialize: function () { _.bindAll(this, 'render', 'addItem',

我的输入在HTML文件中,我的按钮在js文件中。我是这里的初学者,请教我。我仍然对backbone.js感到困惑

 var ListView = Backbone.View.extend({
    el: $('body'),
    events: {
        'click button#add': 'addItem'

    },
    initialize: function () {
        _.bindAll(this, 'render', 'addItem', 'appendItem');

        this.collection = new List();
        this.collection.bind('add', this.appendItem);

        this.counter = 0;
        this.render();
    },

    render: function () {
        $(this.el).append("<button id='add' class='btn btn-primary clear'>Add Items</button>");
        $(this.el).append("<ul class='ul_adjust'></ul>");
        _(this.collection.model).each(function (item) {
            appendItem(item);
        }, this);
    },

    addItem: function () {

        var item = new Item();
        item.set({
            part1: $("#name").val()
        });

        this.collection.add(item);
    },
    appendItem: function (item) {
        var itemView = new ItemView({
            model: item
        });

        $('ul', this.el).append(itemView.render().el);
    },


});
你收到了吗? 我删除了一些不必要的内容,但我认为这些内容将插入此处的某个位置。

您的事件已设置好,因此当您单击“添加”按钮时,它将调用addItem函数。因此,您只需要在同一个函数中清除文本框名称

我只想:

$("#name").val("");

在addItem函数的末尾,在this.collection.addItem之后;因此,该值仅在您不再需要时才被清除。

您能告诉我应该插入哪一行吗?我需要一个事件吗?您的事件已设置为,当您单击“添加”按钮时,它将调用addItem函数。因此,您只需要在同一个函数中清除文本框名称。上次执行此操作将其添加到this.collection.additem之后;因此,该值仅在最后清除,并且在您需要时仍然可用。请在您的答案中编辑其他详细信息。另外,我会用这个$'name'.val代替。谢谢,埃米尔,我已经更新了答案。我不知道这个.$是这个的别名.$el.find!这真的很有用,尽管我不确定在定位ID时是否有必要,因为它在DOM中应该是唯一的。实际上,缩小ID选择器的范围是更快还是更好的做法?您应该使用此.el而不是$this.el。此外,要在视图中查找元素,请使用此。$选择器。主干集合已经有一个each函数,您可以直接调用它this.collection.eachfunction{…},this;。使用this.listenTo代替bind或bindAll。