Ajax:只在元素存在的情况下调用Ajax
Ajax : only call the ajax if element existing
例如,我有一个.ajax()
函数,如下所示:
function trend() {
return $.ajax({
url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + $(".numberOfProfile0").html(), //getting the api
type: 'get',
success: function(data) {
}
});
}
它工作正常,但我想添加一个if语句来检测$(".numberOfProfile0").html()
是否存在,并且只在$(".numberOfProfile0").html()
存在时执行
我试过下面,但似乎不对
if ($(".numberOfProfile0").length) {
function trend() {
return $.ajax({
url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + $(".numberOfProfile0").html(), //getting the api
type: 'get',
success: function(data) {
}
});
}
}
-更新:
让我们展示整个应用程序这就是功能:
if($(".numberOfProfile0").html().length){
function trend1() {
return $.ajax({
url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + $(".numberOfProfile0").html(), //getting the api
type: 'get',
success: function(data) {
}
});
}
}
$.when(trend1()).done(function(trend1_data) {
//do something
}
$('.selector').val().length , $('.selector').html().length
在代码中使用$(".numberOfProfile0").html().length > 0
:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="numberOfProfile0">lorem</div>
<script>
if ( $(".numberOfProfile0").html().length > 0 ) {
alert("success");
// your function:
//function trend() {
//return $.ajax({
// url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + //$(".numberOfProfile0").html(), //getting the api
// type: 'get',
//success: function(data) {
//}
// });
// }
}
</script>
我认为应该是
function trend() {
if ( $(".numberOfProfile0").length ) {
return $.ajax({
url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + $(".numberOfProfile0").html(), //getting the api
type: 'get',
success: function(data) {
}
});
}//if()
else
{
return false; //or any other appropriate value
}
}//trend()
使用($(".numberOfProfile0").html() !== '')
表示如果类为.numberOfProfile0
的元素不是空
function trend() {
if ($(".numberOfProfile0").html().trim() !== '') {
$.ajax({
url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + $(".numberOfProfile0").html(), //getting the api
type: 'get',
success: function(data) {
}
});
}
}
你做错了!您正在if
中定义函数,应该在if
中调用它。
首先定义函数。
function trend() {
return $.ajax({
url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + $(".numberOfProfile0").html(), //getting the api
type: 'get',
success: function(data) {
}
});
}
那就称之为
if ($(".numberOfProfile0").length) {
trend();
}
或
您可以将if检查放入函数中。
function trend() {
if ($(".numberOfProfile0").length) {
return $.ajax({
url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + $(".numberOfProfile0").html(), //getting the api
type: 'get',
success: function(data) {
}
});
}
else{
return -1;
}
}
如果元素存在,可以在三进制的$.when()
中使用.is()
返回trend()
,否则返回null
到$.when()
;句柄元素不存在于CCD_ 15中。注意,如果在.done()
中处理响应,则可以删除$.ajax()
中的success
选项
function trend() {
return $.ajax({
url: "/dashboard/getTrend'"
+ "?period=30d"
+ "&profileId="
+ $(".numberOfProfile0").html(), //getting the api
type: "get"
});
}
$.when($(".numberOfProfile0").is("*") ? trend() : null)
.done(function(trend1_data) {
if (trend1_data === null) {
// handle `$(".numberOfProfile0")` not existing in `DOM`
} else {
// handle `trend1_data` not being `null`, element exists
// do something
}
})
您应该检查aJax的before_send回调中是否存在元素,如果不存在,则取消aJax请求。
function trend() {
return $.ajax({
url: '/dashboard/getTrend' + '?period=30d' + "&profileId=" + $(".numberOfProfile0").html(),
type: 'get',
before_send: : function( xhr ) {
if ($(".numberOfProfile0").length > 0 && $(".numberOfProfile0").html().trim() == ''){
return false;
}
}
success: function(data) {
}
});
}
上面的代码片段应该适用于您的情况。
相关文章:
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 如何在不使用ajax的情况下将pair值添加到数组并发送到django中的视图
- Ajax:只在元素存在的情况下调用Ajax
- (Ajax)在不重新加载内容的情况下登录页面url
- AJAX函数在没有警报的情况下无法工作
- 如何在不使用处理程序的情况下使用ajax将文件从客户端发送到服务器端
- 如何在没有表单提交、没有js、没有jquery和没有ajax的情况下将输入的文本框值存储到php变量中
- 如何在没有 Ajax 的情况下将图像拖放到 servlet
- 如何在没有JQuery的情况下,通过对服务器的基本ajax调用,根据浏览器上的用户活动保持服务器会话活动
- 通过位置栏更改查询字符串,AJAX加载的菜单不会't在没有硬刷新的情况下重新填充
- 如何在发送时不打开新页面的情况下使用php/ajax发送表单
- 在不执行ajax请求的情况下,使用jQuery读取HTTP标头以检查404
- 防止在没有ajax的情况下提交后重定向表单
- 如何在不使用AJAX刷新的情况下发送表单的数据
- 在以下情况下,如何使用AJAX实现删除功能
- 在没有表单的情况下通过AJAX上传图像
- 如何在没有Ajax的情况下将blob存储在表单中,并在单击提交时将其发送到服务器
- Ajax-函数在没有调用或单击的情况下启动
- 如何在没有 AJAX 的情况下调用上一页
- 在没有ajax的情况下将多个变量传递到引用页面的最佳方式