1

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

未捕获的类型错误:对象 [object HTMLInputElement] 没有方法“prop”

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

};
4

1 回答 1

6

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 不仅更快,而且对我来说似乎更干净。

于 2013-04-13T16:25:28.963 回答