2013-04-13 82 views
1

當我試圖通過檢查的jquery設置的單選按鈕..它給我一個錯誤未捕獲的類型錯誤:對象[對象HTMLInputElement]無方法「道具」

Uncaught TypeError: Object [object HTMLInputElement] has no method 'prop'

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

}; 
+0

發佈您的代碼.. –

+0

郵編,我們不能analize像這樣 – steo

+2

爲什麼關閉之後OP發佈的代碼?提名重新開放。 –

回答

6

getElementById返回DOM元素參考(在你的情況下的HTMLInputElement),即,它不具有屬於jQuery objects一個.prop()方法。

除此之外,您的代碼沒有任何副作用,因爲調用.prop()時,單個參數僅僅是一個吸氣器,您不會將其分配給任何東西。要設置元素的checked屬性,你可以使用:

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

以上與純JS,問題是標籤與jQuery但使用它在這一點上,只會讓它更難,因爲你通過2個不同的窗口工作對象。


假設jQuery是包含在同一頁#radios1你可以使用:(啓用可能需要彈出窗口)

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

Demo

或者,如果jQuery的只從其中的網頁包括您正在運行上面的代碼,您可以使用context selector

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

Demo(可能需要啓用彈出窗口)

但是在這種情況下,jQuery使事情更加混亂。如果你在這兩個頁面都有jQuery,兩者都可以工作。純粹的JS不僅更快,而且對我來說也更清潔。

+0

@roXon我相信,15分鐘定時尚未到期。與此同時,我還有更多的補充。 ':P' –

+0

@FabrícioMatté(+1 BTW)只是不要讓它太長時間;) –

+2

@roXon呀只是增加了OP和替代一些鏈接引用顯示說明兩種方法之間的差異。 –

相關問題