如何检查元素(复选框)是否在舞台上?

时间:2014-11-09 23:01:43

标签: jquery checkbox attr prop

我最初的目标是这样一个复选框:

$("#" + tempid_array[0] + " #" + tempid_array[1]).click();

还执行了它与之绑定的任何绑定事件/操作......并且这个 - 工作。

但我想在执行此操作之前检查目标复选框是否在舞台上。 (否则不会执行绑定事件,我需要手动执行相同的操作。)

我的问题是2部分:

1。)为什么这个 - 找不到舞台上的目标复选框(当它是100%时)

我使用相同的选择器/语法来执行click()事件??

//check if checkbox is on stage
if($("#" + tempid_array[0] + " #" + tempid_array[1]).lenth > 0){
    //checkbox found, un-checking   
    console.log("checkbox is on stage");    
    //let bound checkbox event do everything    
    $("#" + tempid_array[0] + " #" + tempid_array[1]).click();
    //$("#" + tempid_array[0] + "#"+tempid_array[1]).prop("checked", false);
    //$("#" + tempid_array[0] + "#"+tempid_array[1]).attr("checked", false);
}else{
    //checkbox not found
    console.log("checkbox -not- on stage"); 
    //do everything ourselves
    //etc...etc...
}

以上总是返回false,在舞台上找不到复选框?

2。)当复选框上的click()事件被触发时(当单独使用而不是在if()语句中使用时...我无法使prop或attr变体起作用?复选框仍然有复选框显示(好像它仍被选中)

我做错了什么?句法?错误的方法完全?

我的主要问题是我怎样才能检测到复选框在舞台上的哪个位置? 第二个问题是好奇心,因为click()事件没有问题..但是prop / attr什么都不做?

1 个答案:

答案 0 :(得分:1)

.lenth > 0

应该是

.length > 0

并且您在.prop中错过了一个空格 - 应该是" #",即

$("#" + tempid_array[0] + " #"+tempid_array[1]).prop("checked", false);