Javascript Django将eventlistener添加到模板标记上的for…循环
我正在尝试将事件侦听器添加到由django模板标记创建的链接列表中 它应该获取类为Javascript Django将eventlistener添加到模板标记上的for…循环,javascript,python,django,django-templates,dom-events,Javascript,Python,Django,Django Templates,Dom Events,我正在尝试将事件侦听器添加到由django模板标记创建的链接列表中 它应该获取类为div.cat-link的对象列表,并为每个对象添加一个eventlistener,以显示div.cat-select html {t在标记%中的百分比为%1} {%endfor%} {t在标记%中的百分比为%1} {t.produto_set.all%} {%endfor%} {%endfor%} JavaScript: 功能显示(一){ var v1=document.getElementById(一个)
div.cat-link
的对象列表,并为每个对象添加一个eventlistener,以显示div.cat-select
html
{t在标记%中的百分比为%1}
{%endfor%}
{t在标记%中的百分比为%1}
{t.produto_set.all%}
{%endfor%}
{%endfor%}
JavaScript:
功能显示(一){
var v1=document.getElementById(一个);
v1.style.display=“flex”;
};
函数隐藏(一){
var v1=document.getElementById(一个);
v1.style.display=“无”;
};
功能类别(){
var v1=document.getElementsByClassName('cat-link');
用于(v1中的o){
var v2='cat_u'+v1[o].getAttribute('id')
v1[o].addEventListener('mouseover',函数(){Showing(v2)});
v1[o].addEventListener('mouseout',函数(){Hiding(v2)});
};
};
类别()
它应该获取类为div.cat-link
的对象列表,并为每个对象添加一个eventlistener,以显示div.cat-select
我得到了一个错误:
未捕获的TypeError:v1[o]。getAttribute不是函数
什么也没发生。看起来你把Python语法和JavaScript混为一谈了 首先,尝试
for(让v1中的o)
而不是for(v1中的o)
然后,您尝试通过索引访问它,但这不是您正在使用的循环类型。请尝试
o.getAttribute('id')
不要在HTMLCollection上使用for…in
。如果将o
登录到循环中的控制台,您将看到原因(o有时是长度
,项
,名称项
)<代码>for(let o of v1){let v2='cat_'+o.id;应该工作得更好。(注意:let
,而不是var
,以确保范围保留在事件处理程序中)我做得不太好!!。非常感谢@blex。除了文档之外,先生还会推荐任何JS教程吗?我尝试了var和let。我通过索引进行访问,因为当我尝试通过o
获取时,它会返回HTMLCollection中该对象的索引。我现在不明白为什么。但是谢谢你的回答