2012-08-14 89 views
0

我有一個單選按鈕,我使用圖像背景掩蓋爲按鈕。當用戶單擊包含單選按鈕的li時,我將單選按鈕打包爲一個對象「el」,並運行一個函數以將該元素作爲參數獲取結果。這在FF和Chrome中工作正常,但我得到一個錯誤,該元素爲空或不是對象。元素爲空或不是對象

任何人都可以看到我的問題嗎?

var selectedid = $this.find("[type='radio']").attr('id'); 
document.getElementById(selectedid).checked = true; 
var el = document.getElementById(selectedid); 
var el = $(el); 
showResults(el); 


function showResults(el) { 
    var id = el[0].dataset['item']; 
    alert(id); 
} 
+0

你從哪裏得到這個錯誤嗎? – Hogan 2012-08-14 00:27:29

+0

你不需要申報el兩次。 $(的document.getElementById(selectedid));工作得很好。 – 2012-08-14 00:37:47

回答

2

你的代碼效率很低,並且在所有瀏覽器中都不支持.dataset。既然你已經使用jQuery,我建議清理你的代碼是這樣的:

var selected = $this.find("[type='radio']").first().prop("checked", true); 
showResults(selected); 


function showResults(el) { 
    var id = el.data("item"); 
    alert(id); 
} 
+0

jfriend是的,我同意不幸的。我一直在努力優化我的代碼。非常感謝你!這很好。我相信除了重複的陳述數據集是我的問題。感謝您指出並幫助我優化。 – user995719 2012-08-14 14:18:20