Nel codice qui sotto ho due selettori jQuery che sembrano funzionare correttamente. C'è una ragione per fare uno invece dell'altro, o c'è un altro modo preferito?In Backbone.js utilizzando jQuery, qual è il modo corretto di selezionare un elemento all'interno di una vista?
var val1 = $("#username", this.el).val()
var val2 = $(this.el).find("#username").val();
Sono consapevole del fatto che non ci dovrebbe essere più elementi con lo stesso ID, ma se ci sono più elementi con lo stesso ID, qual è il modo migliore per selezionare solo l'elemento nella vista (vedi esempio sotto per username).
<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>
--------------------- Aggiornamento --------------------- ---
Creo l'esempio jsFiddle in modo che possa essere visualizzato un esempio funzionante per altri. http://jsfiddle.net/BarDev/9QpKy/
Non ho controllato, ma penso che quando si seleziona per id il contesto non sia così importante per quanto riguarda le prestazioni. Ma è ancora un buon consiglio negli altri casi – Guillaume86
@ Guillaume86 - Sì, se gli ID sono unici allora non è necessario passare il contesto di find con in un oggetto jQuery, puoi usare direttamente il selettore ID. – ShankarSangoli