首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

jquery ajax的一个有关问题

2013-06-26 
jquery ajax的一个问题html类似这种,span classcc?php if ($xx1) { ?a hrefjavascript:void(0

jquery ajax的一个问题
html类似这种,<span class="cc"><?php if ($xx==1) { ?><a href="javascript:void(0);" class="ccc">通过</a><?php } else {  echo '[已通过]'; ?></span>

然后想法是点击通过之后,把通过改成已通过。
$('.cc .ccc').click(function(){
alert($(this).html()) //这边弹出框是可以看到html代码
$.ajax({
url:'xxx/xxx',
type:'post',
dataType:'json',
data:'xx=xx',
success:function(data){
alert($(this).html());//为什么这边弹出框的内容就变成了undefined了呢。

$(this).parent('.cc').html('[已通过]');//这边是想要实现的效果,但是没有
}
});
});

求解啊,为什么呢。ajax是把$xx在数据库里面的值改变了,难不成是这个原因嘛?
[解决办法]
<span class="cc"><?php if ($xx==1) { ?><a href="javascript:void(0);" class="ccc">通过</a><?php } else {  echo '[已通过]'; } ?></span>

少一个封闭符号。ajax报错?
[解决办法]
因为你有 dataType:'json',

success:function(data){
alert($(this).html());

这个 data 是 json 对象,自然不会有 html 方法
何况你实际返回的是 html 串,并不会被 jq 正确解析

$(this).parent('.cc').html('[已通过]');
这里的 this 也存在一些问题

按你的 php 代码,你只需
$('.cc .ccc').click(function(){
  $(this).load(
    url:'xxx/xxx',
    type:'post',
    data:'xx=xx'
  )
}
就可以了
[解决办法]
$('.cc .ccc').click(function(){
var t = this;
alert($(this).html()) //这边弹出框是可以看到html代码
$.ajax({
url:'xxx/xxx',
type:'post',
dataType:'json',
data:'xx=xx',
success:function(data){
alert($(t).html());//为什么这边弹出框的内容就变成了undefined了呢。

$(t).parent('.cc').html('[已通过]');//这边是想要实现的效果,但是没有
}
});
});

热点排行