Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery$.post结果条件_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jQuery$.post结果条件

Javascript jQuery$.post结果条件,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在jQuery网站上修改了这段代码,在其中添加了一个条件。但无论结果如何,它总是在第一个“如果”中出现。我怎样才能使我的条件发挥作用 <script> /* attach a submit handler to the form */ $("#searchForm").submit(function(event) { /* stop form from submitting normally */ event.preventDefault(); /* get some val

我在jQuery网站上修改了这段代码,在其中添加了一个条件。但无论结果如何,它总是在第一个“如果”中出现。我怎样才能使我的条件发挥作用

<script>
/* attach a submit handler to the form */
$("#searchForm").submit(function(event) {

/* stop form from submitting normally */
event.preventDefault(); 

/* get some values from elements on the page: */
var $form = $( this ),
    term = $form.find( 'input[name="s"]' ).val(),
    url = $form.attr( 'action' );

/* Send the data using post and put the results in a div */

**//the condition doesn't work here. It always get into the first "if". Why?**
$.post( url, { s: term },
  function( data ) {
      if (var content = $( data ).find( '#content' )) {
          console.log('One or more results were found');
      } else {
          console.log('no result');
      }
  }
 );
});
</script>

/*将提交处理程序附加到表单*/
$(“#搜索表单”).submit(函数(事件){
/*阻止表单正常提交*/
event.preventDefault();
/*从页面上的元素获取一些值:*/
var$form=$(此),
term=$form.find('input[name=“s”]”)。val(),
url=$form.attr('action');
/*使用post发送数据,并将结果放入div中*/
**//这个条件在这里不起作用。它总是进入第一个“如果”。为什么**
$.post(url,{s:term},
功能(数据){
if(var content=$(data).find('#content')){
log('找到一个或多个结果');
}否则{
console.log(“无结果”);
}
}
);
});

因为您正在条件中进行赋值。它总是返回真的。但如果是这样的话

if(data!="")

那么这将是一个条件。

因为您正在条件中进行赋值。它总是返回真的。但如果是这样的话

if(data!="")
那么这就是一个条件。

使用
$(数据)。查找(“#内容”)。长度

在您的情况下,您正在分配
$(数据)。在您的if条件中查找(“#content”)
var content
$(数据).find(“#content”)
返回一个对象,该对象总是
true
,因此它总是满足if条件

如果要检查数据中是否存在元素,请使用

if ($( data ).find( '#content' ).length > 0) {
      // content exist
} else {
      // empty
} 
使用
$(数据)。查找(“#内容”)。长度

在您的情况下,您正在分配
$(数据)。在您的if条件中查找(“#content”)
var content
$(数据).find(“#content”)
返回一个对象,该对象总是
true
,因此它总是满足if条件

如果要检查数据中是否存在元素,请使用

if ($( data ).find( '#content' ).length > 0) {
      // content exist
} else {
      // empty
} 
而不是

var content = $( data ).find( '#content' )
试一试

find()始终返回一个对象,因此它将始终为true。如果使用.size(),您将看到它是否确实包含任何内容。

而不是

var content = $( data ).find( '#content' )
试一试


find()始终返回一个对象,因此它将始终为true。如果您选择.size(),您将看到它是否确实包含任何内容。

这是不正确的。如果执行If(test=false),它将进入else子句。问题是find()返回一个对象。是的,你是对的。即使是赋值,if也会查看已赋值的变量。很抱歉当我尝试时,if中的“var”首先会导致错误。你怎么过去的?那是不对的。如果执行If(test=false),它将进入else子句。问题是find()返回一个对象。是的,你是对的。即使是赋值,if也会查看已赋值的变量。很抱歉当我尝试时,if中的“var”首先会导致错误。你是如何克服它的?我想说的是,对于有效的html,所有ID都应该是唯一的,这样你就不必使用
$(数据)。查找(“#内容”)
,你可以只使用
$(“#内容”)
,我想说的是,对于有效的html,所有ID都应该是唯一的,这样你就不必使用
$(数据)。查找(“#内容”)
,您可以使用
$(“#内容”)