javascript - JavaScript 只针对页面上的第一个元素
问题描述
我有以下脚本,我试图将任何链接作为目标,.button
以在文本元素周围添加<span>
标签。例如:
<a class="button" href="#">Read More</a>
变成
<a class="button" href="#"><span>Read More</span></a>
我的脚本:
// insert span into anchor
"use strict";
var anchor = document.querySelector(".button");
var html = anchor.innerHTML;
anchor.innerHTML = "<span>" + html + "</span>";
这有效,但仅在页面的第一个实例上?
解决方案
您应该使用 ALL 选择器遍历所有元素,querySelectorAll()
例如:
var anchors = document.querySelectorAll(".button");
for( var i=0;i<anchors.length;i++){
anchors[i].innerHTML = "<span>" + anchors[i].innerHTML + "</span>";
}
var anchors = document.querySelectorAll(".button");
for (var i = 0; i < anchors.length; i++) {
anchors[i].innerHTML = "<span>" + anchors[i].innerHTML + "</span>";
}
console.log(document.body.innerHTML);
<button class='button'>Read More</button>
<br>
<button class='button'>Read More</button>
<br>
<button class='button'>Read More</button>
推荐阅读
- python-3.x - Tensorflow MirroredStrategy() 看起来只能在一个 GPU 上运行?
- javascript - 在特定时区的 Cloud Functions 中获取新日期
- ruby-on-rails - 如何查询 Rails 中的关联与 ActiveRecord 的关联?
- python - 使用正态分布填充 Pandas 数据框
- python - 如何在烧瓶(python)上进行firebase查询?
- bash - 通过标准输入将带有参数的脚本作为字符串传递给 bash
- azure - 发布后Azure函数导入pyodbc错误
- excel - 当 ByRef 是带有 Worksheet 引用的 Range 时,ByRef 到 ByVal 的括号如何工作?
- python - 基于值列的下拉条形图(绘图)
- jhipster - Jhipster 无法生成实体,因为应用程序没有在网关中配置数据库