Расчет ширины динамически (jQuery) - PullRequest
2 голосов
/ 24 января 2010

HTML:

<div class="parent">
    <div class="one"></div>
    <div class="two"></div>
    <div class="three"></div>
</div>

JQuery

parentWidth = $(".parent").outerWidth(true);
oneWidth = $(".parent .one").outerWidth(true);
twoWidth = $(".parent .two").outerWidth(true);
$('.parent .three').width( parentWidth - oneWidth - twoWidth);

Но дело в том, что DIV .one или .two могут не существовать несколько раз, как мне изменить для него jQuery?

Спасибо

Ответы [ 3 ]

6 голосов
/ 24 января 2010

Вы можете проверить, существует ли элемент, проверив его свойство length:

parentWidth = $(".parent").outerWidth(true);
oneWidth = $(".parent .one").length ? $(".parent .one").outerWidth(true):0;
twoWidth = $(".parent .two").length ? $(".parent .two").outerWidth(true):0;
$('.parent .three').width( parentWidth - oneWidth - twoWidth);
4 голосов
/ 24 января 2010

Почему бы вам просто не проверить, является ли результат $ function пустым? ;) Таким образом, вы можете легко узнать, существует ли div, и просто установить ширину на 0 в этом случае, например,

oneDiv = $(".parent .one");
oneWidth = oneDiv.length == 0 ? 0 : oneDiv.outerWidth(true);
3 голосов
/ 24 января 2010

Попробуйте этот код:

var third = $('.parent .three');
var wantedWidth = third.parent().outerWidth(true);

third.siblings().each(function(){
    wantedWidth -= $(this).outerWidth(true);
});

third.width(wantedWidth);
...