Javascript 如何得到一个div的孩子

Javascript 如何得到一个div的孩子,javascript,html,Javascript,Html,用户可以通过按下按钮选择感兴趣的特定主题。当这种情况发生时,各种div将变为可见或不可见,这取决于该div是否有指向该主题的链接 函数GetPostsByTopic(主题){ var区域=document.getElementById(“postArea”); var topicAreas=area.getElementsByClassName(“topicArea”); 对于(i=0;i-1){ //如果可以避免,请不要使用内联样式。 //而是使用预先制作的类。 area.classList

用户可以通过按下按钮选择感兴趣的特定主题。当这种情况发生时,各种div将变为可见或不可见,这取决于该div是否有指向该主题的链接

函数GetPostsByTopic(主题){ var区域=document.getElementById(“postArea”); var topicAreas=area.getElementsByClassName(“topicArea”); 对于(i=0;i

宠物
假期
宠物
假期
宠物

孩子不是问题所在。运行代码时,会出现错误
“UncaughtTypeError:无法将属性'innerHTML'设置为null”
。查看使用
.innerHTML
的代码,我们发现您试图引用此代码中没有的元素:

document.getElementById("firstTest")
现在,在添加之后,您仍然有一些项目需要更改

  • asp操作
    asp路由名称
    是无效的HTML。你用的是一个电话吗 需要这种语法的框架
  • 在结果上使用和 更容易循环
  • 不使用HTML字符串时不要使用,因为这样做会影响安全性和性能。 尽可能避免使用内联样式。使用它们会导致代码重复,代码更难扩展。相反,使用CSS类和API
单击按钮时,不太清楚应该发生什么,但请参见下面的更新代码:

函数GetPostsByTopic(主题){ var区域=document.getElementById(“postArea”); //不要使用.getElementsByCassName(),因为它提供了一个活动节点列表 //并且会对性能造成相当大的影响,尤其是在循环中使用时。 //使用.querySelectorAll(),然后对该集合使用.forEach() //它返回以迭代它们。 area.queryselectoral(“.topicArea”).forEach(函数(区域){ var主题=[]; //这里不需要儿童。同样,使用.querySelectorAll() area.querySelectorAll(“*”).forEach(函数(子){ topics.push(child.getAttribute(“asp路由名称”); document.getElementById(“firstTest”).textContent=child.getAttribute(“asp路由名称”); }); if(topics.indexOf(topic)>-1){ //如果可以避免,请不要使用内联样式。 //而是使用预先制作的类。 area.classList.add(“隐藏”); } 否则{ area.classList.remove(“隐藏”); } }); }
/*尽可能使用CSS类而不是内联样式*/
.hidden{display:none;}

宠物
假期
宠物
假期
宠物

孩子不是问题所在。运行代码时,会出现错误
“UncaughtTypeError:无法将属性'innerHTML'设置为null”
。查看使用
.innerHTML
的代码,我们发现您试图引用此代码中没有的元素:

document.getElementById("firstTest")
现在,在添加之后,您仍然有一些项目需要更改

  • asp操作
    asp路由名称
    是无效的HTML。你用的是一个电话吗 需要这种语法的框架
  • 在结果上使用和 更容易循环
  • 不使用HTML字符串时不要使用,因为这样做会影响安全性和性能。 尽可能避免使用内联样式。使用它们会导致代码重复,代码更难扩展。相反,使用CSS类和API
单击按钮时,不太清楚应该发生什么,但请参见下面的更新代码:

函数GetPostsByTopic(主题){ var区域=document.getElementById(“postArea”); //不要使用.getElementsByCassName(),因为它提供了一个活动节点列表 //并且会对性能造成相当大的影响,尤其是在循环中使用时。 //使用.querySelectorAll(),然后对该集合使用.forEach() //它返回以迭代它们。 area.queryselectoral(“.topicArea”).forEach(函数(区域){ var主题=[]; //这里不需要儿童。同样,使用.querySelectorAll() area.querySelectorAll(“*”).forEach(函数(子){ topics.push(child.getAttribute(“asp路由名称”); document.getElementById(“firstTest”).textContent=child.getAttribute(“asp路由名称”); }); if(topics.indexOf(topic)>-1){ //如果可以避免,请不要使用内联样式。 //而是使用预先制作的类。 area.classList.add(“隐藏”); } 否则{ area.classList.remove(“隐藏”); } }); }
/*尽可能使用CSS类而不是内联样式*/
.hidden{display:none;}

宠物
假期
宠物
假期
宠物

我希望这就是你想要做的。根据您单击的按钮,将显示相应的div

函数