使用动态获取的属性值查找 DOM 元素?
Find a DOM Element using an attribute-value which is acquired dynamically?
已经存在关于使用属性值获取 dom 元素的问题。但是我的不一样,因为我的属性值是事先不知道的。
<div class='gameBoard'>
<div class="grid" index='0'></div>
<div class="grid" index='1'></div>
<div class="grid" index='2'></div>
<div class="grid" index='3'></div>
<!-- Goes up to 100 div / 99 index values -->
</div>
我有一个 div 游戏板代表一个 dom 元素,其中包含 100 个 div,每个元素的索引值从 0 到 99。下面我循环遍历所有 divs,当鼠标悬停在 div 上时,我得到了它的索引 ( data-attribute )。 (如果方向在x轴上,那么我这样做)
const one = el;
const onei = el.getAttribute('index');
const two = el.nextElementSibling;
const twoi = two.getAttribute('index');
但是当方向在 y 轴上时,我不需要下一个 div 元素,而是下面的那个。例如:如果索引为 0,我需要 0 + 10 = 10,所以我需要索引为 10 的 div。我尝试了下面的代码,但它不起作用,因为值是动态检索的,我尝试使用字符串插值,它不起作用。所以请帮忙!!!
const grids = document.querySelectorAll('.grid');
el.addEventListener('mouseover', (e) => {
if (foo === 'destroyer' || foo === 'submarine') {
if (currentDirection === 'Y') {
const one = el;
const onei = Number(el.getAttribute('index'));
const twoi = onei + 10;
const two = document.querySelector("[index='twoi']");
console.log(two, twoi);
}
}
});
querySelector 中的字符串 concatenation 错误
该行应该使用以下代码
const two = document.querySelector(`[index="${twoi}"]`);
您的问题是字符串插值问题。您实际上是在寻找具有索引 twoi
的元素。相反,尝试用反引号插入字符串,例如
const two = document.querySelector(`[index='${twoi}]'`);
或者只是将 twoi 字符串添加到其中:
const two = document.querySelector("[index=" + twoi + "]");
已经存在关于使用属性值获取 dom 元素的问题。但是我的不一样,因为我的属性值是事先不知道的。
<div class='gameBoard'>
<div class="grid" index='0'></div>
<div class="grid" index='1'></div>
<div class="grid" index='2'></div>
<div class="grid" index='3'></div>
<!-- Goes up to 100 div / 99 index values -->
</div>
我有一个 div 游戏板代表一个 dom 元素,其中包含 100 个 div,每个元素的索引值从 0 到 99。下面我循环遍历所有 divs,当鼠标悬停在 div 上时,我得到了它的索引 ( data-attribute )。 (如果方向在x轴上,那么我这样做)
const one = el;
const onei = el.getAttribute('index');
const two = el.nextElementSibling;
const twoi = two.getAttribute('index');
但是当方向在 y 轴上时,我不需要下一个 div 元素,而是下面的那个。例如:如果索引为 0,我需要 0 + 10 = 10,所以我需要索引为 10 的 div。我尝试了下面的代码,但它不起作用,因为值是动态检索的,我尝试使用字符串插值,它不起作用。所以请帮忙!!!
const grids = document.querySelectorAll('.grid');
el.addEventListener('mouseover', (e) => {
if (foo === 'destroyer' || foo === 'submarine') {
if (currentDirection === 'Y') {
const one = el;
const onei = Number(el.getAttribute('index'));
const twoi = onei + 10;
const two = document.querySelector("[index='twoi']");
console.log(two, twoi);
}
}
});
querySelector 中的字符串 concatenation 错误
该行应该使用以下代码
const two = document.querySelector(`[index="${twoi}"]`);
您的问题是字符串插值问题。您实际上是在寻找具有索引 twoi
的元素。相反,尝试用反引号插入字符串,例如
const two = document.querySelector(`[index='${twoi}]'`);
或者只是将 twoi 字符串添加到其中:
const two = document.querySelector("[index=" + twoi + "]");