在 ajax 成功函数中获取错误.getsaves.text 不是一个函数
Getting error in ajax success function. getsaves.text is not a function
这是我的代码
<script>jQuery('.appendurl').click(function(e){
e.preventDefault();
var getsaves = jQuery(this).text();
var ajaxurl = '/wp-admin/admin-ajax.php';
jQuery.post(
ajaxurl,
{
'action': 'add_to_wishlist',
'add_to_wishlist': jQuery(this).attr('data-product-id'),
'product_type': jQuery(this).attr('data-product-type')
},
function(response){
if(response.result = 'true'){
jQuery(this).closest('.yith-wcwl-add-button').removeClass('show');
jQuery(this).closest('.yith-wcwl-add-button').addClass('hide');
jQuery(this).closest('.yith-wcwl-wishlistexistsbrowse').removeClass('hide');
jQuery(this).closest('.yith-wcwl-wishlistexistsbrowse').addClass('show');
saves = getsaves.replace(' saves','');
countInc = parseInt(saves, 10) + 1;
updatedText = countInc + ' saves';
alert(updatedText);
getsaves.text(updatedText);
}
}
);
});</script>
我在 ajax 成功函数的最后一行收到错误。 error 是 TypeError: getsaves.text 不是函数 getsaves.text(updateText);
getsaves.text(updatedText)
在警报中,我正在获取值,并且我在该行上方使用的相同 getsave 来替换一些字符串。
getsaves
是一个字符串,而不是一个jQuery对象,所以你不能对它调用.text
。
我建议你分配$this = jQuery($this)
并将后者的所有出现替换为 $this
,然后在有问题的行上使用它。
这也将解决this
这些回调中不是您认为的this
的问题:
jQuery('.appendurl').click(function(e) {
e.preventDefault();
var $this = jQuery(this);
var getsaves = $this.text();
var ajaxurl = '/wp-admin/admin-ajax.php';
jQuery.post(ajaxurl, {
'action': 'add_to_wishlist',
'add_to_wishlist': $this.attr('data-product-id'),
'product_type': $this.attr('data-product-type')
}, function(response) {
if (response.result == 'true' ) { // fixed '=' error here!
$this.closest('.yith-wcwl-add-button').removeClass('show');
$this.closest('.yith-wcwl-add-button').addClass('hide');
$this.closest('.yith-wcwl-wishlistexistsbrowse').removeClass('hide');
$this.closest('.yith-wcwl-wishlistexistsbrowse').addClass('show');
saves = getsaves.replace(' saves','');
countInc = parseInt(saves, 10) + 1;
updatedText = countInc + ' saves';
// alert(updatedText);
$this.text(updatedText);
}
});
});
您还可以链接两对.removeClass
和.addClass
调用,例如:
$this.closest('.yith-wcwl-add-button').removeClass('show').addClass('hide');
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么