【问题标题】:get element after page loads页面加载后获取元素
【发布时间】:2010-02-13 00:46:43
【问题描述】:

我如何调用一个函数来计算页面加载后 id 为 'd1' 的 div 的数量。现在我在我的部分有它,但是在加载任何内容之前不执行脚本吗?因为如果我把代码放在 div 标签下面,它就可以工作......

【问题讨论】:

    标签: javascript function call


    【解决方案1】:

    首先应该最多有一个,因为 ID 不是要重复的。

    其次,在直接的 Javascript 中,您可以调用 getElementById() 来验证它是否存在,或者调用 getElementsByTagName() 来遍历所有 div 并计算符合您条件的数字。

    var elem = document.getElementById("d1");
    if (elem) {
      // it exists
    }
    

    var divs = document.getElementsByTagName("div");
    var count = 0;
    for (var i = 0; i < divs.length; i++) { 
      var div = divs[i];
      if (div.id == "d1") {
        count++;
      }
    }
    

    但我不能保证这样做的正确行为,因为就像我说的那样,ID 是唯一的,当它们不是时,行为是未定义的。

    【讨论】:

    • 好的,我有 8 个 div,它们是绝对定位的,它们在父 div 内,我希望子 div 的底部位于父 div 的顶部。如果这是有道理的,那么基本上有 2 个 div,子 div 位于父 div 之上。你知道我如何循环它们来做到这一点吗?子 div 也是动态的,所以我不能在 css 中真正做到这一点
    • 我不太明白这个请求,但答案可能是学习/使用 jquery :)
    • @David:我也不太明白,但这听起来像是一个单独的问题。
    【解决方案2】:

    使用jQuery's document.ready() 或连接到 onLoad 事件。

    【讨论】:

      【解决方案3】:

      ID 应该是唯一的,所以答案应该是一个。

      您可以在 DOM 加载后使用 &lt;body onload='myFunc()'&gt; 调用脚本。

      【讨论】:

        【解决方案4】:

        您需要将函数绑定到onload 事件,如下所示:

        window.onload = function() {
            var divElements = document.getElementById("d1");
            var divCount = divElements.length;
            alert(divCount);
        };
        

        作为记录,您应该只拥有一个具有该 ID 的 div,因为拥有多个是无效的并且可能会导致问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-05
          • 1970-01-01
          • 1970-01-01
          • 2018-09-13
          • 1970-01-01
          • 2019-08-09
          • 2021-11-08
          相关资源
          最近更新 更多