[英]Iterate through array of paragraphs and add content from another array in JavaScript
我有 3 个<p>
元素,我想动态更改它们。 我有数组中那些段落的值。
这是我的 HTML:
<p class="para">text xxx</p>
<p class="para">text yyy</p>
<p class="para">text zzz</p>
这是我的 JS:
var mobile = window.matchMedia("(max-width: 567px)")
let paragraphs = document.querySelectorAll('.para')
let paraText = [
'text for mobile xxx',
'text for mobile yyy',
'text for mobile zzz'
]
if (mobile) {
paragraphs.map(paragraph => {
paragraph.innerText = '{belonging element from paraText}'
})
}
我如何做到这一点?
querySelectorAll
返回一个NodeList
而不是一个数组,因此不会有map
函数。
此外, map
用于基于现有数组创建新数组,而您的用例是关于修改其他对象。 forEach
在这里更合适。
相反,尝试将 NodeList 转换为 Array :
if (mobile) {
let paragraphsArray = [...paragraphs];
paragraphsArray.forEach((element, i) => {
element.innerText = paraText[i];
})
}
或者,简单地迭代paraText
代替:
if (mobile) {
paraText.forEach((text, i) => {
paragraphs[i].innerText = text;
})
}
像这样的东西?
if (window.matchMedia("(max-width: 567px)")) {
const paraText = [
'text for mobile xxx',
'text for mobile yyy',
'text for mobile zzz'
];
document.querySelectorAll('.para')
.forEach((p, i) => p.innerText = paraText[i]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.