Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何告诉Javascript getElementByClassName获取ul的所有元素,而不是在每个li中重复类名?_Javascript_Html_Css - Fatal编程技术网

如何告诉Javascript getElementByClassName获取ul的所有元素,而不是在每个li中重复类名?

如何告诉Javascript getElementByClassName获取ul的所有元素,而不是在每个li中重复类名?,javascript,html,css,Javascript,Html,Css,我正在尝试清理我的html/css。我如何才能让这个Javascript仍然工作,而不在ul的每个li元素中插入类名? 如何使html更加美观和可读 const ProfileForm=document.getElementsByClassName('profile_container'); const dash=document.getElementsByClassName('dashboard_按钮'); var指数; var数组=[]; 对于(变量i=0;i

我正在尝试清理我的html/css。我如何才能让这个Javascript仍然工作,而不在ul的每个li元素中插入类名? 如何使html更加美观和可读

const ProfileForm=document.getElementsByClassName('profile_container');
const dash=document.getElementsByClassName('dashboard_按钮');
var指数;
var数组=[];
对于(变量i=0;i
  • 配置文件
  • 我的属性
  • 我的优惠
  • 我的实用工具和Ejari 最喜爱的属性 信息 设置
您可以使用来注意某个“祖先”元素中的所有事件。
(使用而不是内联事件处理程序可以做到这一点,还可以促进HTML和JavaScript之间的关注点分离。)

因为我不确定你想在循环中做什么,下面的演示只是“取消突出显示”所有列表项(然后突出显示单击的任何一项)。有关详细说明,请参阅代码内注释

这是否向你展示了如何完成你想做的事情

//标识'ul'元素,当用户在其中单击时调用'hightlightItem'
const list=document.getElementsByClassName(“列表”)[0];
list.addEventListener(“单击”,高亮显示项);
//定义侦听器函数
函数highlightItem(event){//侦听器可以访问触发事件
const clickedThing=event.target;//事件的'target'属性很有用
//在继续之前,请确保单击的是'li'元素
如果(单击Thing.tagName.toLowerCase()=“li”){
//收集列表项
const items=list.querySelectorAll(“li”);
//循环浏览集合
对于(让项目中的项目){
//更改循环中当前项的类列表
item.classList.remove(“突出显示”);
//在继续循环中的下一项之前,可能会再次更改它
if(item==event.target){item.classList.add(“highlight”);}
}
}
}
。突出显示{背景色:黄色;}
  • 侧面图
  • 我的财产
  • 我的提议

不要使用
文档。getElementByClassName
,而是使用
文档。querySelectorAll
一个简单的
文档。querySelectorAll(“ul li”)
应该可以工作。但是要小心,因为这将选择整个文档中的所有
  • 。如果要选择特定的
    ,请为其指定一个类或ID,并仅选择此项:

    <ul id="myList"><li>...<li></ul>
    
    document.querySelectorAll("ul#myList li")
    
      • 文件查询选择器(“ul#myList li”)
    您可以通过查询选择器执行此操作

    //使用class=“example”获取文档中的所有“li”元素


    querySelectorAll(“ulli”)
    我相信?这回答了你的问题吗?将class
    dashboard\u buttons
    添加到
    ul
    元素而不是
    li
    元素,然后可以使用
    document.querySelectorAll('.dashboard\u buttons li')
    选择所需的
    li
    元素。在样式表中使用相同的选择器来设置列表项的样式。@JeremyThille,这很有效,请将其作为答案发布,以便我可以分配它。很好,这样做了,谢谢。因为这将选择整个文档编号中的所有
  • 。它不会选择
  • ,除非
      祖先。是的,嗯,你在你的选择器中得到了我的观点
      ul#myList
      可以是
      #myList
      var x = document.querySelectorAll("li.example");