jquery:比较单选按钮值和隐藏值

jquery:比较单选按钮值和隐藏值,jquery,html,Jquery,Html,我用html实现了以下likert量表(注意末尾的隐藏字段): 如何访问隐藏输入的值?在这个页面上会有多个隐藏答案,所以我需要得到这个特定likert量表的隐藏答案的值。我愿意将隐藏答案移动到另一个位置(可能在?)中) .parent不够(仅选择)。我想你想要的是。最近的('ul')。兄弟姐妹。。父母是不够的(只选择)。我想你想要的是。最近的('ul')。兄弟姐妹。你没有得到正确的元素。您正在检查li元素的同级('.answer key'),而不是ul $('input[type=radio]'

我用html实现了以下likert量表(注意末尾的隐藏字段):


如何访问隐藏输入的值?在这个页面上会有多个隐藏答案,所以我需要得到这个特定likert量表的隐藏答案的值。我愿意将隐藏答案移动到另一个位置(可能在
?)中)

.parent
不够(仅选择
  • )。我想你想要的是
    。最近的('ul')。兄弟姐妹

    。父母
    是不够的(只选择
  • )。我想你想要的是
    。最近的('ul')。兄弟姐妹

    你没有得到正确的元素。您正在检查
    li
    元素的
    同级('.answer key')
    ,而不是
    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);
    });
    

    您在这里没有得到正确的元素。您正在检查
    li
    元素的
    同级('.answer key')
    ,而不是
    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);
    });
    
    试试这个

    var answer = $(this).closest('ul').next('.answer-key').val();
    
    您需要先到达ul。。 然后使用
    .next
    获取下一个兄弟姐妹

    试试这个

    var answer = $(this).closest('ul').next('.answer-key').val();
    
    您需要先到达ul。。
    然后使用
    .next
    获取下一个同级在这里,父级将选择li元素

    $(this).parent().siblings('.answer-key').val());
    
    将其更改为最近的(“ul”)。同级以获取对应于ul的隐藏元素


    谢谢这里家长将选择li元素

    $(this).parent().siblings('.answer-key').val());
    
    将其更改为最近的(“ul”)。同级以获取对应于ul的隐藏元素

    谢谢

    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"/>
    
    //以防您希望将名称用作选择器的一部分,并验证是否使用is:checked进行了检查,例如。。。我在收音机选项中添加了一个名称。。由于您只能选择一个,因此它们可以具有相同的名称

    <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"/>
    

    //以防您希望将名称用作选择器的一部分,并验证是否使用is:checked进行了检查,例如。。。我在收音机选项中添加了一个名称。。由于您只能选择一个,因此它们可以具有相同的名称

    这非常有效。.closest()函数非常有用。谢谢,这很有效。.closest()函数非常有用。谢谢