2012-03-15 3 views
0

Имеет самое сложное время, записывая функцию, чтобы скрыть числа, равные или меньше нуля. Вот функция, которую я хочу записать в:Если число меньше нуля и отрицательное число скрыть его jQuery

function isItANumber() { 
var increased = parseInt($("#increasedRevenueValue")); 

if(isNaN(increased)) { 
    $("#increasedRevenueValue").hide(); 
} 

} 

Любые мысли? Должен ли я использовать OR?

EDIT: Вот скрипка моего кода http://jsfiddle.net/YVcj7/

+0

Какой тип элемента имеет ID 'increasedRevenueValue'? –

+7

Я думаю, что это должно быть $ ("# увеличенноеRevenueValue"). Val(), если это элемент ввода или $ ("# увеличенноеRevenueValue").text(), если это элемент span/div/any html grouping. –

+1

Условие isNaN .. необходимо продлить, поскольку это касается только нечисловых значений. –

ответ

5

Попробуйте следующее, я думаю, какой элемент вы используете.

function isItANumber() { 
    var increased = parseInt($("#increasedRevenueValue").text()); 

    if(isNaN(increased) || increased <= 0) { 
     $("#increasedRevenueValue").hide(); 
    } 
} 
isItANumber(); 
​ 

Live Demo

И чисто JS .. потому что мы на самом деле нужно JQuery для этого?

function isItANumber(el) { 
    var increased = parseInt(el.innerText); 

    if(isNaN(increased) || increased <= 0) { 
     el.style.display = 'none'; 
    } 
} 
var element = document.getElementById("increasedRevenueValue"); 
isItANumber(element); 

pure js demo

+0

Вот скрипка того, что я делаю, возможно, вы можете пролить свет в этом контексте: http://jsfiddle.net/YVcj7/ – Sethen

+0

@SethenMaleno #increasedRevenueValue - поле ввода. Вы должны использовать .val() для получить значение поля ввода. –

+0

По какой-то причине, каждый раз, когда я пытаюсь найти значение, а запись и если оператор для него меньше 0, он не работает. – Sethen

0

Я думаю, что вы хотите

if(isNaN(increased) || increased <= 0){ 
    $("#increasedRevenueValue").hide(); 

} 
0

Я не думаю, что вы можете ParseInt объект JQuery. Я бы попробовал parseInt($("#increasedRevenueValue").text()); или parseInt($("#increasedRevenueValue").val()); в зависимости от того, что #increasedRevenueValue есть.

0

Похоже, ваша функция делает немного двойной пошлины (получение значения поля, проверяя, если это число, и т.д.).

Во-первых, я бы рекомендовал проверить, что значение является числовым. This question имеет очень хорошее isNumeric function, что вы можете использовать.

В этом случае вам просто нужно сделать следующее:

function isItANumber(value) { 
    var value = $("#increasedRevenueValue").val() || $("#increasedRevenueValue").text() //get the value if this is an input field, or fallback on the text otherwise. 
    var isNumber = isNumeric(value); 
    var isNegative = value < 0; 

    if (isNumber && isNegative) { 
     $("#increasedRevenueValue").hide(); 
    } 
} 
0

Как люди уже упоминалось, если элемент представляет собой поле ввода, ваш «увеличено» должно быть:

var increased = parseInt($("#increasedRevenueValue").val(), 10); 

Если это div/span/paragraph или что-то в этом направлении, это должно быть.

var increased = parseInt($("#increasedRevenueValue").text(), 10); 

Тогда просто выполните цикл if.

if(increased =< 0) { 
    $("#increasedRevenueValue").hide(); 
} 

В зависимости от того, как использование этой функции может потребоваться рассмотреть, если $ («# increasedRevenueValue»). Вал() является пустое значение, paresint сделает его в 0.

0

I я буду считать, что $("#increasedRevenueValue") является входным элементом,

function isItANumber() { 
    //change it to $("#increasedRevenueValue").text() if it is div/span 
    var increased = parseInt($("#increasedRevenueValue").val(), 10); 

    if(isNaN(increased) || increased <= 0) { 
     $("#increasedRevenueValue").hide(); 
    } 

}