Как использовать jquery для получения высоты динамически создаваемого дочернего элемента без идентификатора - PullRequest
6 голосов
/ 10 марта 2009

У меня есть div, который динамически загружается двумя изображениями всегда и, возможно, одним div между ними. Ни изображения, ни div не имеют идентификаторов, связанных с ними (и я не могу заставить их иметь идентификаторы) Осматривая их с помощью firebug, они просто отображаются как <IMG> и <DIV>. Мне нужно получить высоту этого дочернего элемента div, когда он существует.

Я надеялся, что смогу сделать что-то подобное ...

$("#parentDiv > DIV").height();

или это ...

$("#parentDiv > DIV")[0].height();

Поскольку jquery $ возвращает массив. Второй дает ошибки JavaScript, так что я знаю, что я там. Я думаю, что это должно быть близко, хотя. Есть идеи?

Изменить: Вот HTML-код, с которым я работаю.

<DIV id="parentDiv" name="parentDiv">
    <IMG style="DISPLAY: block; VERTICAL-ALIGN: bottom; CURSOR: pointer" height="17" src="..." />

    <!-- this div may or may not be here -->
    <DIV style="DISPLAY: block; BACKGROUND-IMAGE: url(...); WIDTH: 16px; CURSOR: pointer; BACKGROUND-REPEAT: repeat-y; POSITION: relative; HEIGHT: 144px; outline: none">
        <DIV style="LEFT: 0px; OVERFLOW: hidden; WIDTH: 16px; POSITION: absolute; TOP: 128px; HEIGHT: 8px">
             <IMG style="LEFT: 0px; POSITION: absolute; TOP: 0px" height="8" src="..." />
        </DIV>
    </DIV>

    <IMG style="DISPLAY: block; VERTICAL-ALIGN: bottom; CURSOR: pointer" height="17" src="..." />
</DIV>

Ответы [ 4 ]

6 голосов
/ 10 марта 2009

, чтобы получить индексированный элемент jQuery, используйте функцию eq():

$("#parentDiv > DIV").eq(0).height();

или

$($("#parentDiv > DIV")[0]).height();

или

$("#parentDiv > DIV:eq(0)").height();
2 голосов
/ 11 марта 2009

Просто добавьте ко всем остальным способам сделать это:

$("#parentDiv > div:first").height();
1 голос
/ 10 марта 2009

Ваш первый будет работать, пока с вашим селектором все в порядке. Попробуйте следующее и посмотрите, что вы получите:

$("#parentDiv > DIV").css("background", "pink");

Если вы не получили розовый фон там, где ожидали, исправьте ваш селектор, и он будет работать также с выражением высоты.

0 голосов
/ 11 марта 2009

Попробуйте

$($("#parentDiv > div")[0]).height();

Это должно сработать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...