En el siguiente código, tengo dos selectores jQuery que parecen funcionar correctamente. ¿Hay alguna razón para hacer una en lugar de la otra, o hay otra forma preferida?En Backbone.js usando jQuery, ¿cuál es la forma correcta de seleccionar un elemento dentro de una vista?
var val1 = $("#username", this.el).val()
var val2 = $(this.el).find("#username").val();
Soy consciente de que no debe haber múltiples elementos con el mismo ID, pero si hay varios elementos con el mismo ID, ¿cuál es la mejor manera de seleccionar sólo el elemento en la vista (véase el ejemplo a continuación para nombre de usuario).
<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>
--------------------- Actualización --------------------- ---
Creo el ejemplo de jsFiddle para que pueda haber un ejemplo que funcione para otros. http://jsfiddle.net/BarDev/9QpKy/
No lo he comprobado, pero creo que al seleccionar por id el contexto no es tan importante en cuanto a rendimiento. Pero sigue siendo un buen consejo en otros casos – Guillaume86
@ Guillaume86 - Sí, si los ids son únicos, entonces no es necesario pasar el contexto de find with en un objeto jQuery, puede usar directamente el selector de id. – ShankarSangoli