类中所有元素的Javascript set href
我有一个类为“remove typefilter”的标签列表(至少4个) 它们没有“href”,但我想在用户单击按钮时给它们一个 这是我为实现这一点而编写的JS函数:类中所有元素的Javascript set href,javascript,Javascript,我有一个类为“remove typefilter”的标签列表(至少4个) 它们没有“href”,但我想在用户单击按钮时给它们一个 这是我为实现这一点而编写的JS函数: function BuildButtons(urlparams) { elements = document.getElementsByClassName('remove-typefilter') for (let element in elements) { element.href = 'www
function BuildButtons(urlparams) {
elements = document.getElementsByClassName('remove-typefilter')
for (let element in elements) {
element.href = 'www.newlink.com' + urlparams
element.style = 'color: red;'
}
}
但是,当我运行这个函数时,它不会更改属性。A标记没有链接,样式也不会改变
有人知道我做错了什么吗?
for
循环返回的是索引,而不是实际的元素
for (let element in elements) {
应该是
for (let i in elements) {
let element = elements[i];
或
两个问题:
- 函数定义中的语法错误:
无效。使用url参数
urlparms
循环中,迭代对象的键,而不是值。对…使用用于。。。在
。。。而不是
- 不要将
定义为全局变量。使用元素
const
- 最好在URL中添加协议,如
http://
- 虽然将字符串指定给
有效,但直接指定给相关样式属性更有效样式
function BuildButtons(urlParams) {
const elements = document.getElementsByClassName('remove-typefilter');
for (const element of elements) {
element.href = 'http://www.newlink.com' + urlParams;
element.style.color = 'red';
}
}
为什么不使用和
函数构建按钮(urlparms){
var elements=document.querySelectorAll('.remove-typefilter');
elements.forEach(函数(元素){
element.href='www.newlink.com'+urlparms
element.style='颜色:红色;'
});
};
构建按钮(“#xxx”);//随时调用函数。
1
二
三个
您可以使用
Element.setAttribute(*name*,*value*);
这就解决了,谢谢!在我看来,在此之前还有其他答案,这也解释了问题所在。@Jasper是更完整的答案。@Jasper我同意mplungjan和trincot的观点
trincot
s的答案应该是被接受的,而不是我的。他的回答解释了你做错了什么+为什么以及如何修复。我的答案只是你如何解决你的任务的另一种方法。谢谢你的回答,我已经将trincots的答案设置为可接受的答案。可能是重复的
Element.setAttribute(*name*,*value*);