javascript - 在多个部分中鼠标悬停

标签 javascript

我正在尝试使用 js onmousehover 将鼠标悬停在图像上并在单独的固定位置告诉我所述图像的名称。我已经成功地做到了这一点,但是当我需要做大约六个时,我只能让它在第一个元素上工作。这是我的代码示例:

function getElementsById(ids) {
    var idList = ids.split(" ");
    var results = [], item;
    for (var i = 0; i < idList.length; i++) {
        item = document.getElementById(idList[i]);
        if (item) {
            results.push(item);
        }
    }
    return(results);
}

function hover(description) {
    console.log(description);
    document.getElementsById('content content1').innerHTML = description;
}

并称它为我一直在使用的:

<div class="product-description-box">
    <p>
      <div class="colorHeading">colors available: <span class="selectedColor" id="content"></span></div>
      <div class="prodColors"></div> 
    </p>
</div>

我为每个部分使用不同的 ID。 Js 肯定不是我的强项,因此我们将不胜感激!

最佳答案

一种更快的方法是提取元素集合,然后将其转换为数组:

像这样:

[].slice.call(document.getElementsByClassName("box"))
    .forEach(function(element) {element.addEventListener("mouseover", checkBoxColor);});

这对 getElementsByClassName 返回的 HTML 元素集合调用切片,以便将其转换为数组。之后,我运行 forEach 方法将事件监听器添加到每个 HTML 元素。

fiddle :https://jsfiddle.net/0saLvq2q/

在您的情况下,如果您需要通过许多不同的 ID 返回多个元素,您可以使用 querySelectorAll() 而不是 getElementsByClassName() 来提取元素。

关于javascript - 在多个部分中鼠标悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42844063/

相关文章:

javascript - 将多个参数传递给 ES6 中数组辅助方法的迭代器函数

javascript - 如何使用angular js在表单上显示服务器端验证错误消息

javascript - Angularjs。类型错误 : Cannot read property 'apply' of undefined

javascript - 需要从json数据中填写表单数据。没有出现

javascript - 使用 jquery Promise 链接 ajax 请求

javascript - Meteor autoform - 计算隐藏字段的值

javascript - 为 Chart.js 图表提供服务器端数据

javascript - _ids 数组的 MongoDB 请求(这可能吗?)

javascript - 来自 Google Spreadsheet for Apps 脚本网站/webapp 中存储的数据的 HTML 列表 - 模板化 HTML

javascript - 为什么 RxJS 函数 toPromise 没有取消订阅