Javascript未检测HTML元素

Javascript未检测HTML元素,javascript,Javascript,好的,相信我,我的HTML文档上有很多“p”标记。以下是我的Javascript代码: var elements = document.getElementsByTagName('p'); var i; window.onload = clicker(); function clicker() { alert(elements.length); for(i=0;i<elements.length;i++) { alert('looping');

好的,相信我,我的HTML文档上有很多“p”标记。以下是我的Javascript代码:

var elements = document.getElementsByTagName('p');
var i;
window.onload = clicker();
function clicker() {
    alert(elements.length);
    for(i=0;i<elements.length;i++) {
        alert('looping');
        elements[i].onClick = function() {
            this.style.color = '#33CC33';
        }
    }
    setInterval(clicker, 0);
}
var elements=document.getElementsByTagName('p');
var i;
window.onload=clicker();
函数点击器(){
警报(元素长度);

对于(i=0;i,您正在尝试在加载DOM之前访问它

试着这样写:
var elements=document.getElementsByTagName('p');
clicker()函数中:

var elements;
var i;
window.onload = clicker();
function clicker() {
    elements = document.getElementsByTagName('p');
    alert(elements.length);
    for(i=0;i<elements.length;i++) {
        alert('looping');
        elements[i].onClick = function() {
            this.style.color = '#33CC33';
        }
    }
    setInterval(clicker, 0);
}
var元素;
var i;
window.onload=clicker();
函数点击器(){
elements=document.getElementsByTagName('p');
警报(元素长度);

对于(i=0;i您需要等待DOM加载,然后才能访问其内容。我建议将
放在页面底部(在关闭
标记之前)。您也可以将这些顶级
var
放在
onload
中。然后将其范围缩小。
var elements;
var i;
window.onload = clicker();
function clicker() {
    elements = document.getElementsByTagName('p');
    alert(elements.length);
    for(i=0;i<elements.length;i++) {
        alert('looping');
        elements[i].onClick = function() {
            this.style.color = '#33CC33';
        }
    }
    setInterval(clicker, 0);
}