Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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选择超过元素的所有同级_Javascript - Fatal编程技术网

JavaScript选择超过元素的所有同级

JavaScript选择超过元素的所有同级,javascript,Javascript,我希望能够选择超过某个元素的所有同级,如下所示: <ul> <li>Unselected</li> <li>Unselected</li> <li id="start">Start Here</li> <li>Selected</li> <li>Selected</li> <li>Selected</

我希望能够选择超过某个元素的所有同级,如下所示:

<ul>
    <li>Unselected</li>
    <li>Unselected</li>
    <li id="start">Start Here</li>
    <li>Selected</li>
    <li>Selected</li>
    <li>Selected</li>
</ul>
  • 未选择
  • 未选择
  • 从这里开始
  • 精选
  • 精选
  • 精选
我无法计划要选择的兄弟姐妹数量或开始的数量,因此我猜测在某个时候需要有一个
.length


香草JS只请:)谢谢

您可以使用
~
选择器选择这些元素

var elems = document.querySelectorAll("#start ~ li");

var node=document.getElementById(“开始”)
var sibling=node.nextElementSibling


这将在节点之后立即返回同级,或者为null,不再有可用的同级

只需使用
nextElementSibling
,即可迭代兄弟节点:

var e = document.getElementById("start");
while (e = e.nextElementSibling) e.classList.add("selected");
var e=document.getElementById(“开始”);
而(e=e.nextElementSibling)e.classList.add(“选定”)
。已选定{
颜色:红色;
}
  • 未选择
  • 未选择
  • 从这里开始
  • 精选
  • 精选
  • 精选

@RajaprabhuAravindasamy我想,在startOP询问了所有的兄弟姐妹,而不是一个。是的,我明白了。谢谢,无论如何,我现在不能删除我的答案,我可以在接下来的12小时内删除。我没有意识到
~
选择器在第一个选择器之后启动。这是一个很好的解决方案,谢谢@Jasoneco很乐意帮忙!:)