2013-07-07 56 views
-1

我想在一個JQuery選擇器中使用一個變量與一個Id結合使用來選擇合適的輸入值,因爲我有多個表單。我怎樣才能一起使用一個變量和一個id選擇器?在JQuery選擇器內部使用變量

我的代碼:

$("form").submit(function() { 
    var id = $(this).attr("id"); //this grabs the id of the form being submitted 
    var name = $("id #name").val(); <-- this is the line in question 
}); 

謝謝!

+4

通過使用標準的JavaScript字符串拼接,' $('#'+ id +'#name')。val();' – Ohgodwhy

+2

鑑於'id'應該是唯一的,你可以說'$(「#name」).val()'。 – nnnnnn

+0

爲什麼你抓住表單ID?您可以使用提交的表單元素。 – pasine

回答

1

你只需連接字符串:

id + ' #name' 

這使得

var name = $(id + " #name").val(); 

這是奇怪的,因爲id可能不是一個元素,所以你需要添加一個#

'#' + id + ' #name' 

這仍然很奇怪,因爲你使用的是id伊利。

0

簡單地建立選擇串像任何其他字符串:

var name = $("#" + id).val(); 
4

由於標識都應該是獨一無二的,你真正需要的是$('#name')。在任何情況下,如果你想在另一個元素中找到一個元素,並且你已經有了對該元素的引用,那麼不要連接選擇器(如果元素沒有ID?)。改用遍歷方法,如.find。例如:

var value = $(this).find('input[name="name"]').val(); 

看看所有的遍歷方法:http://api.jquery.com/category/traversing/tree-traversal/

如果您真的必須動態構建選擇器,請使用字符串連接,如前所述。選擇器只不過是一個字符串。例如:

$('input[name="' + inputName + '"]') 
+0

+1。在編輯時,我幾乎完成了關於使用''input [name ='name']''的評論。 – nnnnnn

0

您可以將字符串連接到創建正確的選擇,或者你可以使用的方法:
$('#name', this).val(),這是一樣的寫$(this).find('#name').val()