Javascript 使用Jquery检查元素值是否为空

Javascript 使用Jquery检查元素值是否为空,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个输入,我想检查它是否为空。我正在使用Wikipedia的API获取信息,这是AJAX部分: $.ajax({ type: 'GET', url: searchedUrl, async: false, dataType: 'json', success: function(data){ var length = data[1].length; var inputValue = $('#searchInput').val(); con

我有一个输入,我想检查它是否为空。我正在使用Wikipedia的API获取信息,这是AJAX部分:

$.ajax({
  type: 'GET',
  url: searchedUrl,
  async: false,
  dataType: 'json',
  success: function(data){

      var length = data[1].length;
      var inputValue = $('#searchInput').val();
      console.log(inputValue);

      if (!$('#searchInput').val()){ 
        error = true;
        console.log('err');

      } else {
        if (error = true){
          $('#errorMsg').html('Search error').fadeOut();
        }
        $('.title').css('margin-top', '30px');
        $('#output').removeClass('hidden');
          for (var i = 0; i < length; i++){
            $('#output').prepend('<li><a href='+data[3][i]+'>'+data[1][i]+'</a><br>'+data[2][i]+'</li>');
          }
      }
    },
  error: function(err){
    error = true;
    $('#errorMsg').html('Search error').fadeIn();
  }
});
但它不起作用

PS:这是我的JSFIDLE:

谢谢你的帮助

你正在做一个测试!==check,它同时检查类型和值。这意味着如果inputValue为null或未定义,则您的inputValue!==这是真的


为了防止出现这种情况,只需执行if inputValue{…}即可检查输入值是否为null、未定义或0。

我不确定您在这里要做什么。但让我澄清一下

您的inputValue可以是未定义的、空的或有其他内容

如果调用ifinputValue//undefined或null,则它将等于iffalse

如果ifinputValue//blah blah blah,它将等于iftrue


因此,首先您需要先检查它是否为null或未定义,然后调用.length以确保它不是空的。

谢谢您的回答,但我发现了它不起作用的地方。 在检查此行中是否有数据之前,我试图获取数据长度:

success: function(data){

  var length = data[1].length;
  var inputValue = $('#searchInput').val();
  console.log(inputValue);
它将var length=data[1].length;在我检查输入后,它工作了


谢谢大家!

ifinputValue.length{…}!如果长度为0,则不会执行If体。为什么不放置一个调试器,查看该点的值是什么?该值为,但它仍然不起任何作用。在JS第25行中,您有If error=true,它应该是If error==true。您可能还应该从该函数返回或抛出,以防止运行它的其余部分。Nvm。谢谢你,但我猜错了。我会把它寄出去的。感谢Anywyasth,这意味着如果inputValue在OP的代码中为null或未定义,inputValue将永远不会为null。如果没有id为searchInput的元素或者它不是表单字段,那么它将是未定义的唯一方法。如果它在那里,并且是一个表单字段,inputValue将是一个字符串。我刚刚发布了,哈哈哈,在发布答案之前我意识到了这一点。你可以查看我刚才在Liam Gray中的评论。这是正确答案+1。无论如何谢谢你!这在技术上是错误的,如果inputValue对于null、undefined和。长度为0的字符串为false,即使长度为0的数组为true也令人困惑。
success: function(data){

  var length = data[1].length;
  var inputValue = $('#searchInput').val();
  console.log(inputValue);