2012-12-03 89 views
0

看看下面的代碼:jQuery的動態對象選擇

 this.forms = { 
      signIn: { 
       email: $('#tb-input-sign-in-email'), 
       password: $('#tb-input-sign-in-password') 
      }, 
      signUp: { 
       fullName: $('#tb-input-sign-up-full-name'), 
       email: $('#tb-input-sign-up-email'), 
       password: $('#tb-input-sign-up-password') 
      } 
     }; 

這是我的舊代碼初始化我的文本框的jQuery插件:

$('#tb-sign-in-email, #tb-sign-in-password').textbox(); 

新的代碼(使用this.forms陣列)將是:

this.forms.signIn.email.textbox(); 
this.forms.signIn.password.textbox(); 

基本上我想用一行代碼初始化文本框插件就像「老代碼「初始化jQuery插件(使用單個選擇器)。

+1

爲什麼是 「舊代碼」 不工作了? – Horen

+1

真的不能得到你想要實現的。對於我來說,這兩種變體都能勝任。 – HerrSerker

+0

還是隻是您的ID已經從'#tb-sign-in-email'改爲'#tb-input-sign-in-email',這就是爲什麼「舊代碼」選擇器不再工作? – Horen

回答

1

您可以嘗試使用.add()方法

var textbox = this.forms.signIn ; 

(textbox.email).add(textbox.password).textbox(); 
1

您當前的代碼只使用jQuery選擇器獲取DOM上的元素,舊代碼也是如此。

區別在於新代碼更改了選擇器。
#tb-sign-in-email#tb-input-sign-in-email
#tb-sign-in-password#tb-input-sign-in-password

$('#tb-input-sign-in-email, #tb-input-sign-in-password').textbox();

+0

鷹眼+1 upvote – HerrSerker