我不能通过函数使用jquery“切换”一个div,但它给了我
“未捕获的TypeError:无法读取未定义的属性'defaultView'”
chrome调试器中的。这是我的代码
function hide(id){
$(id).toggle();
}
我也试过
if (document.getElementById(id).style.display=="none"){
document.getElementById(id).style.display="block";
}
else if (document.getElementById(id).style.display=="block"){
document.getElementById(id).style.display="none";
}
console.log(document.getElementById(id));
console.log(id);
return document.getElementById(id).style.display;
我收到错误消息
“Uncaught TypeError:无法读取属性'style'的null”
更多信息:
我从HTML中调用hide()
,我使用js输入HTML
这是基本代码
function inputHtml(id){
var div = document.createElement("div");
div.innerHTML = '<div id="'+id+'"><div onclick="hide('+id+')">hide</div></div>';
main.appendChild(div);
}
答案 0 :(得分:0)
您正在尝试切换不存在的ID。
但我想console.log(document.getElementById(id));
已经表明了这一点。
答案 1 :(得分:0)
确定ID存在吗?
顺便说一句,您的功能是按标签名称选择,而不是通过ID:
function hide(id){
$('#' + id).toggle();
}
答案 2 :(得分:0)
首先,您的代码应如下所示:
function hide(id){
$("#"+id).toggle();
}
或者这个:
function hide(id){
$(document.getElementById(id)).toggle();
}
现在出现实际问题:您的id
参数传入是一个对象,这是导致上述第一个版本出错的唯一因素:
Uncaught Syntax error, unrecognized expression: #[object Object]
当您将id
连接到.toString()
时, "#"
会获得"#[object Object]"
,从而产生id
。您的{{1}}参数必须是字符串,而不是对象。