width (), возвращающее `null` для объекта DOM - PullRequest
2 голосов
/ 20 июня 2011

У меня есть следующий объект

<div class='app_advert'><a href="/apps">GET THE APPS</a></div>

, который я буду обозначать как x Я пытаюсь автоматически расположиться над другим элементом (y), я хочу выровнять серединумоя теория выглядит так:

x_width = $(x).width();
y_width = $(y).width();
y_position = $(y).offset().left;

x_horizontal_position =  y_position+(y_width/2)-(x_width/2)

Я пытаюсь получить ширину x, используя:

jQuery(window).load(function(){
    object_width = jQuery('.apps_advert').width();
    console.log(object_width);
});

, но возвращается null.

Я также применяю следующий CSS, в случае, если это может повлиять на вещи:

    div.app_advert{
    position: absolute;
    display: none;

    font-size: 17pt;
    top: 0;

}
div.app_advert a{
    color: white;
    text-decoration: none;
}

Ответы [ 3 ]

3 голосов
/ 20 июня 2011

Ваш класс app_advert, но ваш код jQuery пытается найти apps_advert ( обратите внимание на множественное число от app до apps)

, поэтому попробуйте с

object_width = jQuery('.app_advert').width();
1 голос
/ 20 июня 2011

Если его display: none, он не имеет ширины.(Если null или 0 - правильное значение, я не знаю.)

РЕДАКТИРОВАТЬ : Как и другие заметили, у вас есть опечатка в коде «приложения» противapp ", в этом случае ожидается NULL.Но все же, если элемент скрыт с помощью display: none, ширина должна быть 0.

0 голосов
/ 20 июня 2011

изменить это

object_width = jQuery('.apps_advert').width(); 

к этому

object_width = jQuery('.app_advert').width(); 

у вашего div есть класс app_advert, но в вашем коде вы написали apps_advert, а этот класс не существует. Это причина, почему вы получаете ноль

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