javascript中没有值仍然为真
问题描述:
我需要检查数据集属性给出的某些数据,可能会出现数据集为空的情况,如果是这样的话,我仍然需要跳过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?')
}
答
当然,javascript中的''
的计算结果为false(空字符串)。但是' '
是一个值,它是空格。
你可以尝试先修剪字符串:
// false
<div data-value=" "></div>
if($('div').data('value').trim() !== ""){
alert('hello ...world?')
}
答
尝试微调,然后检查感实性
$('div').each(function() {
var data = $.trim($(this).data('value'));
if (data) {
alert('hello ...world?');
}
});
答
您应该测试正是你想要的。如果要测试一个字符串是否包含空格以外的字符串,请考虑:
if (/\S/.test($('div').data('value'))) {
// value contains something other than white space
}
可能是先修整字符串?当然,包含空格的字符串与空字符串不同。首先对字符串进行修剪,从而在开始和结束时删除空格字符(空格,制表符,换行符......)。 – 2013-03-10 22:14:55
我很困惑...你想要第二个是假的,但它仍然是真的吗? – Xymostech 2013-03-10 22:15:52
@Simon,是的,工作,谢谢! – user759235 2013-03-10 22:17:20