jQuery:选中已选中的上一个复选框
我有一个文本框,当文本发生变化时,它会调用一些Javascript 在这个文本框之前,我有两个互斥的复选框(chkA,chkB)。 当我启动新功能时,我希望能够检查当前选中的复选框。到目前为止我有这个jQuery:选中已选中的上一个复选框,jquery,Jquery,我有一个文本框,当文本发生变化时,它会调用一些Javascript 在这个文本框之前,我有两个互斥的复选框(chkA,chkB)。 当我启动新功能时,我希望能够检查当前选中的复选框。到目前为止我有这个 $(".textbox1").keyup(function () { var chk = $(this).prevAll(":checked").first().attr('class'); .... }); 代码继续执行“如果class=bla
$(".textbox1").keyup(function () {
var chk = $(this).prevAll(":checked").first().attr('class'); ....
});
代码继续执行“如果class=blah,那么做一些事情,否则什么也不做”
它适用于我的单选按钮代码,但不适用于我的复选框。“chk”最终为空。如果您需要知道选中复选框的类别(我使用了一个我称为“wrapper”的虚构元素,该元素保存所有输入字段,请使用正确的元素替换该元素或张贴标记):
如果您需要知道选中复选框的类别(我使用了一个虚构的元素,我称之为“包装器”,它保存了您的所有输入字段,请使用正确的元素替换它或张贴您的标记): “我有两个相互排斥的复选框(chkA、chkB)。”使用复选框的目的是允许用户做出相互包含的选择。您可能需要重新考虑并使用单选按钮(设计为相互排斥) 也就是说,
keyup
的处理程序似乎正在将checked属性设置为true的最接近(文本框)的前一个元素的class属性设置为true。您的复选框(chkA,chkB)是否符合该标准,或者在它们之后(但在您的文本框之前)是否有其他复选框被选中?“我有两个相互排斥的复选框(chkA,chkB)。”使用复选框的目的是允许用户做出相互包含的选择。您可能需要重新考虑并使用单选按钮(设计为相互排斥)
也就是说,
keyup
的处理程序似乎正在将checked属性设置为true的最接近(文本框)的前一个元素的class属性设置为true。您的复选框(chkA、chkB)是否符合该标准,或者在它们之后(但在您的文本框之前)是否还有其他复选框被选中?。prevall()以相反的顺序给出元素(在前面的同级列表中),因此。first()实际上是您希望最后一个的,反之亦然。.prevall()以相反的顺序给出元素(在前面的同级列表中向上),因此.first()实际上是您希望的最后一个,反之亦然。谢谢。我不知道JQ中的.closest()特性。谢谢。我不知道JQ中的.closest()特性。
$(".textbox1").keyup(function () {
if($(this).closest('#wrapper').find("input:checkbox:checked").hasClass('blah')){
//do what you need
});