jquery toggle()不使用变量

时间:2010-11-02 22:59:25

标签: javascript jquery

我不能通过函数使用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);
}

3 个答案:

答案 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}}参数必须是字符串,而不是对象。