2014-09-03 57 views
1

執行以下操作:點擊將結果傳遞給每個q的隱藏字段?

$(".questionOne").click(function(){ 

    var answer=$(this).attr('href').split('=')[1] 
    $('#questionOne').val(answer); 

     return false; 
}); 

我怎麼去重複它的每一個問題,而不是鍵入它30次?我有30個問題,這些問題是肯定的或者沒有將結果發送到隱藏字段的鏈接,但是不能爲我的生活記住如何讓它重複每個點擊答案的功能。

+3

你的HTML看起來像什麼? – 2014-09-03 21:44:18

+2

看看jQuery中的.each()函數。循環你所有的問題。 – 2014-09-03 21:44:49

+0

這裏是我的jsfidde http://jsfiddle.net/wqpjme1L/ – BN83 2014-09-03 21:54:10

回答

1

假設有沒有含在同類詞「問題」的任何其他元素,你可以使用屬性選擇[class*="question"]選擇的元素。然後,獲取點擊元素的類並根據該id選擇其他元素。

Updated Example - HTML保持不變。

$('a[class*="question"]').on('click', function() { 
    var answer = $(this).attr('href').split('=')[1]; 
    $('#' + $(this).prop('class')).val(answer); 

    return false; 
}); 

在這種情況下,data-*屬性會比類更好。

+1

這很完美。謝謝喬希。我猜這是在「問題」之後從類中獲取值並將其分配給輸入字段? – BN83 2014-09-03 22:03:40

+0

@ BN83是的。它完成了你最初的例子。查看[更新示例](http://jsfiddle.net/w3yuv4Lw/)。 – 2014-09-03 22:04:42

+0

我確實看到了這個例子,我只想確認代碼實際在做什麼,而不是僅僅使用它。 – BN83 2014-09-03 22:06:43

2

給所有的問題提供一門課, class="question"。然後,你可以寫它只是一次:

$(".question").click(function() { 
    var href = $(this).attr('href').split('='); 
    var question = href[0].substr(2); // skip over #? 
    var answer = href[1]; 
    $("#"+question).val(answer); 
    return false; 
}); 

DEMO

+0

我這樣做了:http://jsfiddle.net/wqpjme1L/1/但它似乎沒有收到文件的輸入? – BN83 2014-09-03 21:57:48

+0

你實際上用'$(「#questionOne」)。val(答案)'完成了什麼? – Barmar 2014-09-03 21:59:29

相關問題