2010-02-13 4 views
2

как я могу вызвать функцию для подсчета количества div с идентификатором 'd1' после загрузки страницы. прямо сейчас у меня это в моем разделе, но разве это не выполнение скрипта перед чем-либо в нагрузках? потому что он работает, если я помещаю код под тегами div ...получить элемент после загрузки страницы

ответ

3

Во-первых, должно быть не больше одного, поскольку идентификаторы не должны повторяться.

Во-вторых, в прямом 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++; 
    } 
} 

Но я не могу гарантировать правильное поведение это потому, что я сказал, идентификаторы предназначены быть уникальным и, когда они не поведение не определено.

+0

ok У меня есть 8 divs, они расположены абсолютно, они находятся внутри родительского div, я хочу, чтобы дно дочернего div было в верхней части родительского div. если это имеет смысл, так что в основном есть 2 divs, дочерний div поверх родительского div. знаете ли вы, как я могу их пропустить? также дочерний div является динамическим, поэтому я не могу действительно сделать это в css – David

+0

Я действительно не понимаю запрос, но ответ, вероятно, должен изучить/использовать jquery :) –

+0

@David: я действительно не понимаю, но это почти звучит как отдельный вопрос. – cletus

0

Идентификатор должен быть уникальным, поэтому ответ должен быть одним.

вы можете использовать <body onload='myFunc()'> для вызова сценария после загрузки DOM.

0

Вы должны иметь функцию, привязанную к onload событию, например, так:

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

Для записи, вы должны иметь только один DIV с этим идентификатором, как имеющий более чем один недопустим и может привести к проблемы.

Смежные вопросы