如何更改某个分区中的输入元素类

时间:2013-12-29 14:48:49

标签: javascript jquery

我在div中使用“next”类输入字段,如下所示:

<div id="Q1">    
    <input class="next" type="radio" id="listIt_YN_UA" name="listIt_YN" value="U">&nbsp;&nbsp;
    <label for="listIt_YN_UA"><span class="red">Come Back To This Question At A Later Time</span></label><br /><br />
</div>

然后是以下功能:

function answerQ(value) {
    var tab_pool = ["Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10", "Q11", "Q12"];
    var visible = $(".tab:visible").attr('class').split(" ")[1];
    var curr_ind = $.inArray(visible, tab_pool);
    var returnTo = value;
    $(".tab:visible").hide();
    curr_ind = curr_ind - returnTo;
    $("." + tab_pool[curr_ind]).show();
    document.getElementById(tab_pool[curr_ind]).checked=false;
    $(".finished").hide();
    $(".next").show();
}

我正在尝试使用上面函数中的语句更改当前可见div中的“next”类。我尝试了一些如下所示的东西,但没有一个在起作用。有什么想法吗?

$("." + tab_pool[curr_ind]).removeClass("next").addClass("newNext");

2 个答案:

答案 0 :(得分:0)

尝试:

$('#'+tab_pool[curr_ind]).find('input').removeClass('next').addClass('newNext');

您需要在# ID之前使用.而不是tab_pool,然后使用.find('input')转到输入元素。

答案 1 :(得分:0)

让我展示id为Q1的div的代码 -

$(".next").click(function toggle(){
    if($("#" + "Q1" + ">input[type=radio]").attr('checked')==undefined)
    {
     $("input[type=radio]").attr('checked', true);
     $("input[type=radio]").removeClass("next").addClass("newNext");
    }
    else
    {
     $("input[type=radio]").removeAttr('checked');
     $("input[type=radio]").removeClass("newNext").addClass("next");
    }
})

所以基本上你的实现的jquery对象将是

$("#" + tab_pool[curr_ind] + ">input[type=radio]")

选中 fiddle demo