当我尝试通过jquery检查设置单选按钮时...它给了我一个错误
未捕获TypeError:对象[object HTMLInputElement]没有方法 '丙'
var sub="twoWheeler";
if (vehicleType == sub) {
alert("asdasd");
window.opener.document.getElementById("radios1").prop("checked");
}else{
};
答案 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不仅更快,而且对我来说也更清洁。