如何使用javascript选择节标记内的所有div?

如何使用javascript选择节标记内的所有div?,javascript,html,css,Javascript,Html,Css,我正在用javascript制作一个基于回合的游戏。我想将玩家从一个div移动到另一个div。我已经将所有这些div放在一个分区中,然后使用queryselectorall将其放入一个数组中。现在我的问题是,我还有另一个div我想使用,我不能单独选择它们。谁能告诉我如何只选择一些div?我已经看到了类似section>div的东西来区分它们,但这对我来说不起作用 我曾尝试在rollDice、zar1和zar2上用span替换div,但这样做会导致一些CSS中断 ~ <div class="

我正在用javascript制作一个基于回合的游戏。我想将玩家从一个div移动到另一个div。我已经将所有这些div放在一个分区中,然后使用queryselectorall将其放入一个数组中。现在我的问题是,我还有另一个div我想使用,我不能单独选择它们。谁能告诉我如何只选择一些div?我已经看到了类似section>div的东西来区分它们,但这对我来说不起作用

我曾尝试在rollDice、zar1和zar2上用span替换div,但这样做会导致一些CSS中断

~
<div class="rollDice">Roll the dice</div>
<div class="zar1">
    <img src="poze/dice-5.png" alt="Dice" class="dice" id="dice-1" style="width:150px">
</div>

<div class="zar2">
    <img src="poze/dice-5.png" alt="Dice" class="dice2" id="dice-2"  style="width:150px">
</div>


<section class="mutari">
    <div class="nr1 mutabil"><h1>1</h1></div>
    <div class="nr2 mutabil"><h1>2</h1></div>
    <div class="nr3 mutabil"><h1>3</h1></div>
</section>
~
~
掷骰子
1.
2.
3.
~

我只想从节中选择div。然后我想用
document.body.childNodes

只需将document.body替换为HTML元素即可。 之后,您可以通过列表进行筛选,从而获得一个select all DIV

如果要获取所有div,还可以使用以下命令:

var dh = document.body.getElementsByTagName('div');
获取所有div节点:

使用
document.body.getElementsByTagName('div')

获取筛选的div节点:

document.body.childNodes
获取数组

使用for循环和if条件进行过滤


条件示例:使用like
node[i].nodeName
node[i].id
您要查找的是:

document.querySelectorAll('section > div:nth-child(-n+3)')
部分
(a)查找您的
。如果您有更多的section元素,则可以更精确地使用
section.mutari
(使用a)

>div
选择作为该节直接子项的所有
标记<代码>>是一个


:第n个子元素(-n+3)
,a将此限制为仅选择前三个元素,而不是全部元素。在您的示例中不需要它,因为您只有三个div;但是如果你有更多,这只会给你前三个。

你的问题不是很清楚。您能否提供一个HTML结构的示例,说明哪些是您想要选择的,哪些不是?好吧。我将给出更多的上下文,这如何告诉OP“如何按照他们的要求只选择一些div?”从document.body.childNodes获取数组。并使用for循环和节点[i]的条件进行筛选。节点名称和节点[i]。id这如何告诉OP“如何按要求仅选择一些div?”之后,您可以获取列表并进行筛选。按姓名或id选择你需要的。这正是我所描述的。这不是他要求的!他问如何只选择一些特定的div。通过@trinity and me的解决方案,您可以动态地获得该结果!你的不是很稳定,好像他添加了新的div,他需要搜索一个新的解决方案@PatrickLüthi请展示OP表示他们需要现场收藏的地方。相反,提到了
querySelectorAll
;OP只是不知道如何构造一个好的选择器。“有人能告诉我如何只选择一些div吗?”对于这个问题,你的答案是错误的。他说,他只需要一些div,而不是前三个或任何东西(我知道目前这样做是可行的,但以后可能不行,为什么不从一开始就用正确的方式来做呢)。使用我的解决方案,他能够准确地选择他需要的div,如果他添加更多div,它仍然可以工作!在Javascript中,您应该始终以动态方式编程。这里有一篇文章可以帮助你进一步了解它:@PatrickLüthi“我只想从部分中选择div。然后我想选择前3个div。”请不要想象不存在的东西,并回答存在的东西。如果你回答我,为什么不先读我的答案?没有必要拖那么长的评论。我用正确的方式解释了原因。接受它吧