2014-09-03 52 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

相关问题