2013-03-10 64 views
0

我需要检查数据集属性给出的某些数据,可能会出现数据集为空的情况,如果是这样的话,我仍然需要跳过if语句,但空数据集仍然是true ,我试过... null,未定义,他们不工作。javascript中没有值仍然为真

所以,如果没有价值,它应该是假的。

// false 
<div data-value=""></div> 

if($('div').data('value') !== ""){ 
    alert('hello ...world?') 
} 

//true 
<div data-value=" "></div> 

if($('div').data('value') !== ""){ 
    alert('hello ...world?') 
} 
+6

可能是先修整字符串?当然,包含空格的字符串与空字符串不同。首先对字符串进行修剪,从而在开始和结束时删除空格字符(空格,制表符,换行符......)。 – 2013-03-10 22:14:55

+1

我很困惑...你想要第二个是假的,但它仍然是真的吗? – Xymostech 2013-03-10 22:15:52

+0

@Simon,是的,工作,谢谢! – user759235 2013-03-10 22:17:20

回答

2

当然,javascript中的''的计算结果为false(空字符串)。但是' '是一个值,它是空格。

你可以尝试先修剪字符串:

// false 
<div data-value=" "></div> 

if($('div').data('value').trim() !== ""){ 
    alert('hello ...world?') 
} 
0

您应该测试正是你想要的。如果要测试一个字符串是否包含空格以外的字符串,请考虑:

if (/\S/.test($('div').data('value'))) { 
    // value contains something other than white space 
}