2011-12-01 58 views
0

我有這個jQuery的行:將屬性值動態插入選擇器。

jQuery("input[name=secondname10]").removeAttr("disabled").val(""); 

我想知道我怎麼可以讓name動態的,而不是在代碼進入它,因爲我與name=secondname10一樣。

+2

你問如何連接字符串? – SLaks

+0

cargo-cult * magic *編程再次發生。 –

回答

1

創建一個具有名稱參數的函數。

function enableInput(name) { 
    jQuery("input[name="+ name +"]").removeAttr("disabled").val(""); 
} 

那麼,如果你想這樣做的每個輸入類型,你可以做到這一點

enableInput("secondname10"); 

,如果你想這樣做的每個輸入元素上,你可以做到這一點

jQuery("input").removeAttr("disabled").val(""); 

你可以做的文字

jQuery("input[type='text']").removeAttr("disabled").val(""); 

和所以...

正如你所看到的,你必須將正確的過濾器應用到你的選擇器。

希望這有助於

+2

hideInput是啓用和清除輸入的函數的特殊名稱o_O –

+0

;)right ...也許「enableInput」更好 – dknaack

+0

或者你可以使它更像是一個DOM函數,並將其稱爲'enableInputByName',然後添加代碼以使其在IE中表現出不可預知的行爲。 :p – RightSaidFred

4
$('input[name=' + myNameVariable + ']') 

從您的評論,它不是很清楚你想要什麼。

  • 如果要將此應用到所有投入,你可以只寫$('input')
  • 如果您想將其應用於所有輸入爲name,您可以編寫$('input[name]');
  • 如果您想將其應用於名稱以secondname開頭的所有輸入,您可以編寫$('input[name^=secondname]')

機會是你想要目標的輸入有一些更方便的共同點,你可以訪問它們。也許你正在尋找某個容器中的所有輸入?或者是某個班級的所有輸入?

我建議您閱讀jQuery selectors以瞭解不同方式的概念,通過這些方法您可以識別一組用於操作的對象。

+0

謝謝。有沒有辦法動態獲取輸入的名稱?因爲我有其他名字secondname10,secondaname14,secondname14,email15,adresse15等,如果我創建一個新字段,我必須在代碼中輸入輸入的名稱。我希望它能夠得到這個名字。我嘗試過「this.name」,但它不起作用 – user1073001

0

你的意思是像tihs?

function removeAttr(nameVariable) { 
    $("input[name=" + nameVariable + "]").removeAttr("disabled").val(""); 
} 
+0

謝謝。有沒有辦法動態獲取輸入的名稱?因爲我有其他名字secondname10,secondaname14,secondname14,email15,adresse15等,如果我創建一個新字段,我必須在代碼中輸入輸入的名稱。我希望它能夠得到這個名字。我試過「this.name」,但它不起作用 – user1073001