我在html中实现了以下likert标度(注意结尾处的隐藏字段):
<ul class="likert">
<li class="likert">Not Empathetic<input type="radio" value="1" />
<li class="likert"><input type="radio" value="2" />
<li class="likert"><input type="radio" value="3" />
<li class="likert"><input type="radio" value="4" />
<li class="likert">Very Empathetic<input type="radio" value="5" />
</ul>
<input class="answer-key" type="hidden" value="5"/>
我试图将所选单选按钮的值与存储在隐藏字段中的值进行比较。
在jquery中,我有以下内容:
$(document).ready(function(){
//click handler
$('input[type=radio]').click(function(){
var value = $(this).val();
//DOESN'T WORK
var answer = $(this).parent().siblings('.answer-key').val());
compute_score(answer,value);
});
});
我如何访问隐藏输入的值?这个页面上会有多个隐藏的答案,所以我需要获得这个特殊的Likert量表的隐藏答案的值。我愿意将隐藏的答案移到另一个位置(可能在<ul>
内?)。
答案 0 :(得分:1)
.parent
还不够(仅选择<li>
)。我想你想要.closest('ul').siblings
......
答案 1 :(得分:0)
你在这里没有得到正确的元素。您正在检查siblings('.answer-key')
元素的li
,而不是ul
。
$('input[type=radio]').click(function(){
var value = $(this).val();
// $(this) equals <input[type=radio]>
// $(this).parent() equals <li class="likert">
// $(this).parent().siblings('.answer-key') equals nothing!
var answer = $(this).parent().siblings('.answer-key').val();
compute_score(answer,value);
});
您需要$(this).parent().parent()
才能获得ul
。然后你可以检查兄弟姐妹。所以这应该这样做:
var answer = $(this).parent().parent().siblings('.answer-key').val();
答案 2 :(得分:0)
试试这个
var answer = $(this).closest('ul').next('.answer-key').val();
你需要首先进入 ul ..
然后使用.next
获取下一个兄弟
答案 3 :(得分:0)
这里父母将选择li元素
$(this).parent().siblings('.answer-key').val());
将其更改为最接近(“ul”)。兄弟姐妹以获取与ul。
对应的隐藏元素由于
答案 4 :(得分:0)
HTML
<ul class="likert">
<li class="likert">Not Empathetic <input name='radio_check' type="radio" value="1" />
<li class="likert"><input type="radio" name='radio_check' value="2" />
<li class="likert"><input type="radio" name='radio_check' value="3" />
<li class="likert"><input type="radio" name='radio_check' value="4" />
<li class="likert">Very Empathetic <input name='radio_check' type="radio" value="5" />
</ul>
<input class="answer-key" type="hidden" value="5"/>
的Javascript
jQuery(document).ready(function($){
//click handler
$('input[type=radio]').on('click',function(event){
var value = $(this).val();
//call your javascript function
compute_score(answer, $('input[type="hidden"].answer-key').val() );
event.preventDefault();
});
});
//以防你想使用该名称作为选择器的一部分,并验证是否检查过它:例如检查...我在收音机选项中添加了一个名称..因为你只能选择一,他们可以有相同的名字