javascript - 在使用 jQuery 的 Backbone.js 中,在 View 中选择元素的正确方法是什么?

标签 javascript jquery backbone.js

在下面的代码中,我有两个似乎可以正常工作的 jQuery 选择器。是否有理由做一个而不是另一个,或者是否有另一种首选方式?

var val1 = $("#username", this.el ).val()
var val2 = $(this.el).find("#username").val();

我知道不应该有多个具有相同 id 的元素,但是如果有多个具有相同 id 的元素,最好的方法是只选择 View 中的元素(请参见下面的用户名示例) .

<body>
    Username: <input type="text" id="username" /><br />
    <br /><br />
    <div id="login">
        Username: <input type="text" id="username" /><br />
        <button id="loginButton">Login</button>
    </div>

    <script type="text/javascript">
        var LoginView = Backbone.View.extend({
            el: "#login",
            events: {
                "click #loginButton": "login"
            },

            login: function () {
                var val1 = $("#username", this.el ).val()
                var val2 = $(this.el).find("#username").val();

                console.log(val1);
                console.log(val2);
            }
        })
        var loginView = new LoginView();
    </script>    
</body>

--------------------更新--------------------

我创建了 jsFiddle 示例,以便可以有一个工作示例供其他人查看。 http://jsfiddle.net/BarDev/9QpKy/

最佳答案

为简洁起见,我通常使用 Backbone-provided shortcut :

this.$('#username')

这是 $('#username', this.el); 的别名

但是,您使用的任何选择方法都可以正常工作。您的示例中的其他两种方式都很好。

关于javascript - 在使用 jQuery 的 Backbone.js 中,在 View 中选择元素的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933975/

相关文章:

javascript - 如何实现 Symbol.iterator?

php - 使用 Javascript 过滤来自数据库的结果,这将使 DIV 根据新参数重新加载其内容

javascript - localStorage - 删除本地|基于键的存储值

javascript - 如何在音频时间更新上获取 clientx

php - 如何计算固定数量的 PayPal 费用 (2.9% + .30)?

javascript - jquery宽度随着滚动而增加/减少

java - 创建具有特定 session ID 的 session

Backbone.js DELETE 请求未触发

javascript - 主干模型、JSON 和 HTML 表单

javascript - Handlebars : More than one model inside template