javascript中的即时嵌套DOM声明

javascript中的即时嵌套DOM声明,javascript,jquery,Javascript,Jquery,如何在javascript中获得嵌套的DOM元素而不是使用jQuery? 例如: $('#id') = document.getElementById('id'); 我想将这个jQuery选择器$('.nav>li')转换为javascript。我该怎么做呢?您有一个非常好的函数,名为,它可以使用css查询选择元素 document.querySelectorAll('.nav > li'); 如果您计划不止一次地使用它,那么您还可以使用var,这样它就会感觉像是在使用jQuery v

如何在javascript中获得嵌套的DOM元素而不是使用jQuery? 例如:

$('#id') = document.getElementById('id');

我想将这个jQuery选择器
$('.nav>li')
转换为javascript。我该怎么做呢?

您有一个非常好的函数,名为,它可以使用css查询选择元素

document.querySelectorAll('.nav > li');
如果您计划不止一次地使用它,那么您还可以使用var,这样它就会感觉像是在使用jQuery

var _ = document.querySelectorAll.bind(document)
var menuItems = _('.nav > li');

为了补充建议使用
querySelectorAll
的答案,下面介绍如何使用老式DOM操作实现这一点

var selected = [];

// get all elements that have the class 'nav' (.nav)
var navs = document.getElementsByClassName('nav');

var i, j, children;

// iterate over each nav and get a list of their direct children (.nav >)
for(i = 0; i < navs.length; i++) {
  children = navs[i].children;

  // iterate over the children and select if the tag is li (.nav > li)
  for(j = 0; j < children.length; j++) {
    if(children[j].tagName === 'LI') {
      selected.push(children[j]);
    }
  }
}
var selected=[];
//获取具有类“nav”(.nav)的所有元素
var navs=document.getElementsByClassName('nav');
变量i,j,儿童;
//迭代每个nav并获取其直接子项的列表(.nav>)
对于(i=0;ili)
对于(j=0;j

这也是为什么声明式编程更适合这种任务的一个很好的例子。

我想你正在寻找,或者哦,对不起@Georg,花了太多时间记住如何与降价链接,没有看到你的评论。