【问题标题】:I want to change this paragraph through javascript [closed]我想通过javascript更改这一段[关闭]
【发布时间】:2021-12-30 23:22:36
【问题描述】:
document.querySelector("#myBtn").onclick = function () {
  console.log("Clicked");
  const h1 = document.querySelector("#myH1");
  const underline = document.createElement("u");
  underline.innerText = "Hey bro.";
  h1.innerText = "";
  h1.append(underline);

  const p = document.querySelector(".myP");
  p.forEach((element) => (element.innerText = "Thank You!!!!"));

  const btn = document.querySelector("button");
  btn.remove();
};
p.forEach((element) => (element.innerText = "Thank You!!!!"));

我得到了:Error TypeError p.forEach is not a function

【问题讨论】:

  • querySelector 返回一个 HTML 元素,而不是类似结构的数组...
  • 使用document.querySelectorAll(".myP")
  • 您的意思是使用querySelectorAllquerySelector 只返回第一个匹配节点(如果存在),而不是节点列表。
  • 能否也提供 HTML 代码?
  • 这能回答你的问题吗? forEach is not function

标签: javascript


【解决方案1】:

Document 方法querySelector() 返回文档中与指定选择器匹配的第一个元素。

您可以改用getElementsByClassName

var p = document.getElementsByClassName('myP"');
for (let i = 0; i < p.length; i++){
  p[i].innerText = "Thank You!!!!";
} 

【讨论】:

    【解决方案2】:

    querySelector 仅返回 1 个元素。使用querySelectorAll 返回匹配给定选择器的元素列表。

    【讨论】:

      【解决方案3】:

      首先,检查你是否创建了一个查询。然后在函数内部没有定义变量p。使用查询选择器全部返回查询中的所有元素。

      【讨论】:

      • 这应该是评论,而不是答案。
      【解决方案4】:

      querySelector 返回一个可以用 forEach 迭代的数组。所以你只需要将querySelector 更改为querySelectorAll

        const p = document.querySelectorAll('.myP')
        p.forEach((element) => (element.innerText = "Thank You!!!!"));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-11
        • 1970-01-01
        • 2021-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多