Javascript 元素为null或不是对象

Javascript 元素为null或不是对象,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个单选按钮,我使用图像背景将其屏蔽为按钮。当用户单击包含单选按钮的li时,我将单选按钮打包为对象“el”,并使用元素作为参数运行函数以获得结果。这在FF和Chrome中运行良好,但我得到一个错误,即元素为null或不是对象 有人能看到我的问题吗 var selectedid = $this.find("[type='radio']").attr('id'); document.getElementById(selectedid).checked = true; var el = docum

我有一个单选按钮,我使用图像背景将其屏蔽为按钮。当用户单击包含单选按钮的li时,我将单选按钮打包为对象“el”,并使用元素作为参数运行函数以获得结果。这在FF和Chrome中运行良好,但我得到一个错误,即元素为null或不是对象

有人能看到我的问题吗

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);
}

您的代码效率很低,而且并非所有浏览器都支持
.dataset
。既然您已经在使用jQuery,我建议您像这样清理代码:

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


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

你不需要两次申报el$(document.getElementById(selectedid));很好。朋友是的,很遗憾我同意。我一直在努力优化我的代码。非常感谢你!这很有效。我相信除了重复的陈述之外,数据集也是我的问题。感谢您指出这一点并帮助我进行优化。