当我尝试通过jquery检查设置单选按钮时..它给了我一个错误
未捕获的类型错误:对象 [object HTMLInputElement] 没有方法“prop”
var sub="twoWheeler";
if (vehicleType == sub) {
alert("asdasd");
window.opener.document.getElementById("radios1").prop("checked");
}else{
};
getElementById
返回一个 DOM 元素引用(在您的情况下为 an HTMLInputElement
),也就是说,它没有.prop()
属于jQuery objects的方法。
除此之外,您的代码不会产生任何副作用,因为.prop()
使用单个参数调用仅仅是一个 getter,并且您没有将其分配给任何东西。要设置元素的checked
属性,您可以使用:
window.opener.document.getElementById("radios1").checked = true;
以上是纯 JS,问题是用 jQuery 标记的,但此时使用它只会让你在处理 2 个不同的窗口对象时变得更加困难。
#radios1
假设 jQuery 包含在您可以使用的同一页面中:
window.opener.$('#radios1').prop('checked', true);
演示(可能需要启用弹出窗口)
或者,如果 jQuery 仅包含在运行上述代码的页面中,则可以使用上下文选择器:
$('#radios1', window.opener.document).prop('checked', true);
演示(可能需要启用弹出窗口)
但是在这种情况下,jQuery 只会让事情变得更加混乱 IMO。如果您在两个页面中都有 jQuery,那么两者都可以工作。纯 JS 不仅更快,而且对我来说似乎更干净。