2013-09-20 4 views
-1

У меня есть 2 переменные:Jquery Если/Else Процент

  1. $a, ширина моей навигации
  2. $b, в li в моей навигации

Я ищу, чтобы сделать условное заявление, основанное на проценте моего li, приведено в моей навигации, например:

$a = $("nav").width(); 
    $b = $("nav li").first.width(); 

    if($b > (27% of $a)) { 
    echo "<p>do something crazy</p>"; 
    } 
    else if ($b > (87% of $a)){ 
    echo "<p> do something less crazy</p>"; 
    } 
    else ($b > (47% of $a)){ 
    echo "<p> do nothing at all</p>"; 
    } 

Может кто-нибудь объяснить, как сравнить процент от ...?

+0

Вопрос заключается меньше * JQuery * связаны и более JavaScript математические операции. Подобно принципам математики, процент может быть написан более чем одним способом; например, '25% == 0,25'. Первый не распознается JavaScript, второй (десятичная нотация). В JavaScript также нет ключевого слова 'of', поэтому вам нужно' $ a * .27', однако вам может понадобиться выполнить 'parseFloat ($ a)' в зависимости от того, будет ли ваша версия 'jQuery.width()' возвращает в 'px' или нет. – vol7ron

+0

Посмотрел, а 'width()' не включает устройство в текущие версии. Также '$' обычно обозначает переменную объекта jQuery. В вашем случае 'width()' должен возвращать число, а не объект jQuery, поэтому вам не следует использовать '$' sigil/prefix; однако 'a' и' b' также не являются хорошими именами переменных, поскольку они используются внутренне при сортировке переменных, и плохие вещи могут произойти, если вы используете их не в том месте. Вместо этого более описательные имена будут лучше: «var nav_width = ..., li_width = ...» – vol7ron

+0

Также следует отметить, что проблема «эхо» в контексте выше будет проблемой. Это не javascript, и это даже не скрипты на стороне сервера. Может быть, вы имеете в виду 'document.write()'? – Tap

ответ

6

Вы должны делать математику себя:

if($b > ($a * 0.27)) { 

знак процента % имеет другое значение, это remainder operator.


Ах, и else (/* whatever */){ неправильно, должно быть просто else {. И echo - это PHP, а не JavaScript! :-)

+0

ха-ха, ну это вроде неловко, спасибо. Я даю вам ответ через несколько минут. – Mark

-1
var a=$("element").html(); 

    var b= $("secondelement").html(); 

if(a>b){} 
+1

Я не понимаю, что вы здесь делаете. – Mathletics

0

Основываясь на мои комментарии и код:

var nav_width = $("nav").width(), 
    li_width = $("nav li").first.width(); 

if (li_width > (nav_width * 0.27)) { 
    // echo "<p>do something crazy</p>"; 
} 
else if (li_width > (nav_width * 0.87)) { 
    // echo "<p> do something less crazy</p>"; 
} 
else (li_width > (nav_width * 0.47)) { 
    // echo "<p> do nothing at all</p>"; 
} 
Смежные вопросы