在下面的代码中,我有两个似乎可以正常工作的 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/