2012-03-15 105 views
0

在函數中寫入最困難的時間來隱藏等於或小於零的數字。這裏是我想寫入的功能:如果數字小於零並且負數將其隱藏起來jquery

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

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

} 

有什麼想法?我應該使用OR嗎?

編輯:這裏是我的代碼http://jsfiddle.net/YVcj7/

+0

有什麼類型的元素的ID'increasedRevenueValue'? – 2012-03-15 15:28:47

+7

我認爲它應該是$(「#increaseRevenueValue」)。val()如果它是一個輸入元素或$(「#increaseRevenueValue」)。text()如果它是span/div /任何html分組元素。 – 2012-03-15 15:29:50

+1

條件isNaN ..需要擴展,因爲這隻需要照顧非數字值 – 2012-03-15 15:31:44

回答

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 2012-03-15 15:39:11

+0

@SethenMaleno #increasedRevenueValue是一個輸入字段..你應該使用.val()來獲取輸入字段的值。 – 2012-03-15 15:40:47

+0

出於某種原因,每次我嘗試查找值並寫入,並且if語句小於0時,它都不能正常工作。 – Sethen 2012-03-15 15:42:45

0

我覺得搗鼓你想

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

} 
0

我不認爲你可以parseInt函數一個jQuery對象。我會嘗試parseInt($("#increasedRevenueValue").text());parseInt($("#increasedRevenueValue").val());,具體取決於​​是什麼。

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 /段落或者其他應該是的話。

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

然後簡單地做一個if循環。

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

取決於你如何使用此功能時,您可能需要考慮是否$(「#increasedRevenueValue」)。VAL()是一個空值,paresint會使它變成0。

0

我我會認爲$("#increasedRevenueValue")是一個input元素,

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(); 
    } 

} 
相關問題