Сравнение размеров в jQuery - PullRequest
4 голосов
/ 11 сентября 2010

Привет, ребята, я сейчас изучаю jQuery, и мне интересно кое-что.

Для функций, которые возвращают размеры в строках, например, сказать:

$(".some-class").css("line-height"); // => "18px"

Есть ли способсравнить их?Например, если я хочу увидеть, если это хотя бы определенный размер, прежде чем что-то делать?

Я на самом деле не планирую использовать это, мне просто любопытно.Я искал вокруг, но я ничего не нашел.Я думаю, что плагин был бы написан.Возможно, сначала убедитесь, что сравнительная строка имеет те же единицы измерения, а затем посмотрите, какое число больше или что-то в этом роде.

В качестве дополнительного вопроса, из любопытства: в javascript, что будетспособ сохранить только номер?Итак, как мне получить 18 или "18" от "18px"?Если для развлечения / практики я хотел бы реализовать то, что я изложил выше, есть ли какие-либо методы, на которые я должен взглянуть, чтобы отделить число от остальных, или мне просто следует использовать регулярные выражения?

Ответы [ 2 ]

3 голосов
/ 11 сентября 2010

Я не слишком уверен насчет различных форм единиц, но чтобы получить возвращаемое значение в виде целого числа.

if (parseInt($(".some-class").css("line-height"), 10) < 18) {
    alert("It's less than 18px!");
}

Не забудьте установить основание parseInt: http://www.w3schools.com/jsref/jsref_parseInt.asp

1 голос
/ 11 сентября 2010

Не забывайте, что если высота строки не установлена ​​явно, возвращаемая высота будет "normal" (jsFiddle) , поэтому вам также следует обработатьчто .... (normal является значением по умолчанию, и предполагается, что это какое-то разумное расстояние)

Вы также можете использовать регулярное выражение, чтобы нарезать px от конца.Как только вы получите строку в эту форму, JS выполнит преобразование типа для вас (jsFiddle) :

var height = $(".some-class").css("line-height");

if (height !== "normal") {

     // Remove 'px' from the end. The $ means the end of the line in a regex.
   height = height.replace(/px$/, ""); 

    if (height < 18) {
        alert("The height (" + height + ") is less than 18");
    } else {
        alert("The height (" + height + ") is greater or equal to 18");
    }
} else {
    alert("The height is " + height);
}

Вот aВопрос переполнения стека о высоте строки normal, и вот напыщенная речь о высоте строки normal Эрика Мейера .

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