javascript中没有值仍然为true

javascript中没有值仍然为true,javascript,jquery,Javascript,Jquery,我需要检查数据集属性给出的一些数据,数据集可能是空的,如果是这样,我仍然需要使用if语句跳过,但是空数据集仍然是真的,我尝试过…null,未定义,它们不起作用 因此,如果没有价值存在,它应该是假的 // false <div data-value=""></div> if($('div').data('value') !== ""){ alert('hello ...world?') } //true <div data-value=" "><

我需要检查数据集属性给出的一些数据,数据集可能是空的,如果是这样,我仍然需要使用if语句跳过,但是空数据集仍然是真的,我尝试过…null,未定义,它们不起作用

因此,如果没有价值存在,它应该是假的

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

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

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

if($('div').data('value') !== ""){
   alert('hello ...world?')
}
//错误
如果($('div')。数据('value')!=“”){
警报(‘你好……世界?’)
}
//真的
如果($('div')。数据('value')!=“”){
警报(‘你好……世界?’)
}
当然,javascript中的
'
计算结果为false(空字符串)。然而,
是一个值,它是空白

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

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

if($('div').data('value').trim() !== ""){
   alert('hello ...world?')
}
//错误
如果($('div').data('value').trim()!=“”){
警报(‘你好……世界?’)
}

尝试修剪,然后检查真实性

$('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
}

也许先修剪一下绳子吧?当然,包含空格的字符串与空字符串不同。修剪字符串首先删除开头和结尾的空格字符(空格、制表符、换行符…)。。。你想让第二个为假,但它仍然返回为真吗?@Simon,是的,这很有效,谢谢!