Javascript - 在 div 中定位 p 标签不返回任何内容

标签 javascript html dom getelementsbytagname getelementsbyclassname

我有两个“thing”类的 div。我想使用 javascript 访问其中的所有 p 标签并更改它们的颜色。这就是我正在尝试的,但它不起作用:

<div id="top" class="thing">
    <p>kdjflksj siuiotue</p>
    <p>kdjflksj siuiotue</p>
    <p>kdjflksj siuiotue</p>    

</div>

Javascript

   var changes = document.getElementsByClassName("thing");
   var pchanges = changes.getElementsByTagName("p");

   for(let i = 0; i < pchanges.length; i++) {

    pchanges[i].onmouseover = function() {

        this.style.color = "blue";
    }

    pchanges[i].onmouseout = function(){
        this.style.color = "black";
    }

}

JavaScript 位于 window.onload 函数内。

最佳答案

您的变量更改HTMLCollection它没有 getElementsByTagName 方法。您必须对集合内的每个元素调用该方法才能获得您想要的内容。不过,这看起来是一个使用 document.querySelectorAll 的好地方,这样您就可以在一次调用中获取所需的元素:

var pchanges = document.querySelectorAll(".thing p");

for(let i = 0; i < pchanges.length; i++) {
    pchanges[i].onmouseover = function() {
        this.style.color = "blue";
    }

    pchanges[i].onmouseout = function(){
        this.style.color = "black";
    }
}
<div id="top" class="thing">
    <p>kdjflksj siuiotue</p>
    <p>kdjflksj siuiotue</p>
    <p>kdjflksj siuiotue</p>    
</div>

关于Javascript - 在 div 中定位 p 标签不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48774174/

相关文章:

c++ - 在 C 或 C++ 中选择并复制 firefox 内容到剪贴板

javascript - 如何从下到上制作条形图的动画?

javascript - 将 css 应用于旋转木马幻灯片上的另一个跨度

javascript - 将自定义图像添加到节点

java - fater网页源提供者

html - 将垂直范围 slider 与其末端的按钮对齐

dom - 在浏览器中调试自定义 DOM 事件

java - Java 中的 XHTML 操作库

javascript - 当资源不是本地时,Cordova android 4.x 后退按钮事件不会触发(使用 http)

html - 是否可以增强 svg 标题工具提示的默认外观