2012-03-30 41 views
2
var filterMinPV = $('.hidePVVol > td input:first').val(); 
var filterMaxPV = $('.hidePVVol > td input:last').val(); 

目前,如果輸入框爲空,它們將被設置爲空字符串。我現在用console.log記錄這些值。要做到這一點的內聯if語句的唯一方法?

是否有可能賦予這些值「NULL」的值,我可以看到這樣做的唯一方法是將if語句放入val()中。但是,有沒有更好的方式,也許我缺少一些鏈接功能?

所以如果輸入框有一個值,我希望它分配給var。如果它是一個空字符串,我希望將「NULL」分配給var。

希望我解釋得很好!

+0

你爲什麼不能只是檢查了var您登錄之前?檢查它的空字符串,並將其更改爲'NULL' – jzworkman 2012-03-30 16:00:00

+0

@jzworkman試圖節省代碼中的行空間。這已經是一個非常大的功能,並且必須檢查這兩個變量以及其他約20個變量對我來說只會是太多肉。 – 2012-03-30 16:03:30

+0

你可以在下面看到我的答案,如果你想讓它使用變量而不必在行中創建兩個jquery調用,可以在數據庫中添加內聯檢查。 – jzworkman 2012-03-30 16:06:21

回答

2
var filterMinPV = $('.hidePVVol > td input:first').val() || null; 
var filterMaxPV = $('.hidePVVol > td input:last').val() || null; 

不在於它可以幫助任何東西,你還需要測試null的地方,你不妨測試空字符串代替。

你可能想避免通過查詢相同的元素集爲這個複雜的選擇兩次:

var inputs = $('.hidePVVol > td input'), 
    filterMinPV = inputs.first().val() || null, 
    filterMaxPV = inputs.last().val() || null; 
+1

如果該值是字符串'0',是不是將該值設置爲空? – MichaelRushton 2012-03-30 16:01:18

+1

不,因爲只有空字符串是虛擬值'!!'0' // true !!'' // false' – Esailija 2012-03-30 16:01:53

+0

比PHP好多了。 :) – MichaelRushton 2012-03-30 16:02:52

1
var filterMinPV = $('.hidePVVol > td input:first').val() !== '' ? $('.hidePVVol > td input:first').val() : null; 
var filterMaxPV = $('.hidePVVol > td input:last').val() !== '' ? $('.hidePVVol > td input:last').val() : null; 
+2

DOM正在悄悄地自己睡覺... – 2012-03-30 16:00:18

+0

:)我喜歡內嵌條件。 – MichaelRushton 2012-03-30 16:02:03

+0

@MichaelRushton我不明白這是如何工作的,但我很高興它的確如此。這是什麼?做。去嘗試在jquery.com上找到它。再次感謝您 – 2012-03-30 16:02:22

3

當您登錄值:

logger.log(filterMinPV == '' ? filterMinPV : 'NULL'); 
logger.log(filterMaxPV == '' ? filterMaxPV : 'NULL');