Javascript jQuery$.post结果条件
我在jQuery网站上修改了这段代码,在其中添加了一个条件。但无论结果如何,它总是在第一个“如果”中出现。我怎样才能使我的条件发挥作用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
<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都应该是唯一的,这样你就不必使用$(数据)。查找(“#内容”)
,您可以使用$(“#内容”)