未捕获的TypeError:对象[object HTMLInputElement]没有方法'prop'

时间:2013-04-13 16:22:51

标签: jquery-ui jquery

当我尝试通过jquery检查设置单选按钮时...它给了我一个错误

  

未捕获TypeError:对象[object HTMLInputElement]没有方法   '丙'

var sub="twoWheeler";
if (vehicleType == sub) {
       alert("asdasd");
       window.opener.document.getElementById("radios1").prop("checked");
}else{

};

1 个答案:

答案 0 :(得分:6)

getElementById会返回一个DOM元素引用(在您的情况下为HTMLInputElement),也就是说,它没有属于.prop()jQuery objects方法。< / p>

除此之外,您的代码没有任何副作用,因为使用单个参数调用.prop()仅仅是一个getter,而您并没有将它分配给任何东西。要设置元素的checked属性,您可以使用:

window.opener.document.getElementById("radios1").checked = true;

上面是使用Pure JS,问题用jQuery标记,但是在这一点上使用它只会让你在处理2个不同的窗口对象时变得更难。


假设jQuery与#radios1包含在同一页面中,您可以使用:

window.opener.$('#radios1').prop('checked', true);

Demo(可能需要启用弹出窗口)

或者,如果jQuery仅包含在您运行上述代码的页面中,则可以使用context selector

$('#radios1', window.opener.document).prop('checked', true);

Demo(可能需要启用弹出窗口)

但是在这种情况下,jQuery让事情变得更加混乱IMO。如果你在两个页面都有jQuery,那么两个都可以。纯粹的JS不仅更快,而且对我来说也更清洁。