querySelectorAll 不适用于多个相同的 ID
querySelectorAll not working for multiple same id
如何解决?它不影响 HTML。我想为所有具有相同 ID 的 a 标签添加 javascript 中的 href。
谢谢!
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<script>
var name = "google.com";
var elms = document.querySelectorAll("#mySrct");
elems.forEach((elem) =< {
elem.href = "www." + name;
});
</script>
对于您的代码,元素名称和箭头函数不正确。检查下面的代码。
var elems = document.querySelectorAll("#mySrct");
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<script>
var name = "google.com";
var elems = document.querySelectorAll("#mySrct");
elems.forEach((elem) => {
elem.href = "www." + name;
});
</script>
不能有多个具有相同 ID 的元素。尝试这样做:
var name = "https://www.google.com";
var elems = document.getElementsByClassName("mySrct");
var run = elems.href = name;
.mySrct {
background-color: red;
color: #fff;
border-radius: 25px;
padding: 3px 8px;
float: right;
}
<a class='mySrct' href="">Demo</a>
<a class='mySrct' href="">Demo</a>
<a class='mySrct' href="">Demo</a>
正如其他几个人所说,id 的目的是唯一的。但是,您可能会以这种方式滥用它。
const elems = document.querySelectorAll('[id="no-proper-id"]');
for(const elem of elems) {
console.log(elem.innerHTML);
}
<div id="no-proper-id">A</div>
<div id="no-proper-id">B</div>
<div id="no-proper-id">C</div>
<div id="no-proper-id">D</div>
<div id="no-proper-id">E</div>
如何解决?它不影响 HTML。我想为所有具有相同 ID 的 a 标签添加 javascript 中的 href。 谢谢!
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<script>
var name = "google.com";
var elms = document.querySelectorAll("#mySrct");
elems.forEach((elem) =< {
elem.href = "www." + name;
});
</script>
对于您的代码,元素名称和箭头函数不正确。检查下面的代码。
var elems = document.querySelectorAll("#mySrct");
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<a id='mySrct' style='background-color:red;color:#fff;border-radius:25px;padding:3px 8px;float:right;'>Demo</a>
<script>
var name = "google.com";
var elems = document.querySelectorAll("#mySrct");
elems.forEach((elem) => {
elem.href = "www." + name;
});
</script>
不能有多个具有相同 ID 的元素。尝试这样做:
var name = "https://www.google.com";
var elems = document.getElementsByClassName("mySrct");
var run = elems.href = name;
.mySrct {
background-color: red;
color: #fff;
border-radius: 25px;
padding: 3px 8px;
float: right;
}
<a class='mySrct' href="">Demo</a>
<a class='mySrct' href="">Demo</a>
<a class='mySrct' href="">Demo</a>
正如其他几个人所说,id 的目的是唯一的。但是,您可能会以这种方式滥用它。
const elems = document.querySelectorAll('[id="no-proper-id"]');
for(const elem of elems) {
console.log(elem.innerHTML);
}
<div id="no-proper-id">A</div>
<div id="no-proper-id">B</div>
<div id="no-proper-id">C</div>
<div id="no-proper-id">D</div>
<div id="no-proper-id">E</div>