Javascript 如何以单个元素为目标动态创建按钮
我的印象是,如果我们以类名的元素名为目标,那么它将适用于所有元素或具有该类名的元素。但是在下面的代码中,当我单击一个按钮时,它只会更改最近的span元素的innerHTML,即使我已经通过选择button元素添加了事件侦听器。请澄清。谢谢Javascript 如何以单个元素为目标动态创建按钮,javascript,Javascript,我的印象是,如果我们以类名的元素名为目标,那么它将适用于所有元素或具有该类名的元素。但是在下面的代码中,当我单击一个按钮时,它只会更改最近的span元素的innerHTML,即使我已经通过选择button元素添加了事件侦听器。请澄清。谢谢 constmyarray=[0,1,2]; 让myContainer=document.querySelector('.container'); const newArray=myArray.map((项)=>{ 让newArticle=document.c
constmyarray=[0,1,2];
让myContainer=document.querySelector('.container');
const newArray=myArray.map((项)=>{
让newArticle=document.createElement('article');
常量myHTML=`
单击${item}
`;
newArticle.innerHTML=myHTML;
让myBtn=newArticle.querySelector('button');
myBtn.addEventListener('单击',(e)=>{
newArticle.querySelector('span').innerHTML='clicked';
})
返回新文章;
});
newArray.forEach((项)=>{
myContainer.appendChild(项目);
});代码>
返回newArticle中的第一个按钮
let myBtn = document.querySelectorAll('button');
返回文档中的所有按钮
您可以通过单击每个按钮告诉我们您的期望值?document.querySelectorAll(“.container”)代码>返回一个srray。因此,与该类匹配的第一个元素是document.getElementByClassName(“容器”)[0]
或document.querySelectorAll('.container')[0]
。请尝试在此服务器上使用数组forEach方法。请注意,我使用了document.querySelectorAll
。您之所以选择closesspan
,是因为您在此处查找span
内部文章:newArticle.querySelector('span')
。将其更改为文档。查询选择器('span')
将找到所有span
元素。@MasterMindquerySelectorAll
返回一个数组,而不是querySelector
:)@BrunoMonteiro right。抱歉。你为什么要在文章
中创建文章
?
let myBtn = document.querySelectorAll('button');