javascript - 如何对具有相似 ID 的多个标签使用 JavaScript 函数?

标签 javascript html css

我正在使用 javascript 通过鼠标悬停功能在其他用 html 编写的标签上更改标签文本的颜色。 例如:

function mouseoverbox1() {
  var mypara = document.getElementById("a1");
  mypara.style.color = "green";
}
<div onmouseover="mouseoverbox1()">
  <a id="a1">Color</a>
  <a id="a1">Names</a>
  <a id="a1">Places</a>
</div>

现在,当我运行代码时,只有标签“Color”的颜色变为绿色,而 Names and Places 没有。有什么方法可以让我的函数接受对所有具有相似 ID 的 anchor 标记的更改???

最佳答案

id 需要是唯一的。使用 document.querySelectorAll 和一个类可以满足相同的目标,因为多个元素可以具有相同的 class

//get all the elements with same class name
// iterate it using array#forEach menthod
document.querySelectorAll('.a1').forEach(function(item) {
  // add event to each of the element
  item.addEventListener('mouseover', function(e) {
    this.style.color = "green";
  })
})
<div>
  <a class="a1">Color</a>
  <a class="a1">Names</a>
  <a class="a1">Places</a>
</div>

注意:这将在鼠标悬停时为单个文本着色,但如果要求一次为所有文本着色,则将事件处理程序添加到父元素

关于javascript - 如何对具有相似 ID 的多个标签使用 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48073800/

相关文章:

javascript - 使用事件绑定(bind)的回车键将焦点从按钮切换到文本框

javascript - 一种在选择后保持链接粗体的方法(与 :visited) 不同

javascript - 如何在 HTML 中加载图像,如 iPad 网站从左向右滑动

javascript - Jquery 下拉菜单在远处显示的幻灯片上

javascript - 如何让 AngularJS 更新 ng-repeat 数组拼接上的 DOM? $scope.$apply() 返回错误

javascript - Promise 如何与嵌套函数调用一起工作

html - 当包含图像时,如何在 CSS 中使表格响应?

jquery - 如何使用 html 内联链接更改 css 样式

html - 在 URL 栏/生成配置文件页面中显示的文本框中键入的文本

javascript - .js 代码的 RazorEngine 评估问题