Jquery 有没有办法通过Ajax调用更新标记属性?

Jquery 有没有办法通过Ajax调用更新标记属性?,jquery,ajax,image,yii,Jquery,Ajax,Image,Yii,假设我有一个ajax操作,它根据参数返回特定的图像url。我想使用ajax调用通过ajax用不同的图像更新图像标记。操作如下所示: public function actionSendUrl($params) { echo IMAGE_PATHS[$params]; } 但是当谈到CHtml::ajaxButton时,我发现CHtml::ajax类只有一个update或replace属性,它们只是用我的响应替换整个文本或整个标记 echo CHtml::ajaxButton('BLAH'

假设我有一个ajax操作,它根据参数返回特定的图像url。我想使用ajax调用通过ajax用不同的图像更新图像标记。操作如下所示:

public function actionSendUrl($params)
{
   echo IMAGE_PATHS[$params];
}
但是当谈到
CHtml::ajaxButton
时,我发现
CHtml::ajax
类只有一个
update
replace
属性,它们只是用我的响应替换整个文本或整个标记

echo CHtml::ajaxButton('BLAH','SendUrl?params=***',array('replace'=>'#image_tag_id'),);
将我的操作代码修改为:

public function actionSendUrl($params)
{
   echo CHtml::image(IMAGE_PATHS[$params],array('id'=>'image_tag_id'));
}
让我恼火的是,每次我更改图像时都必须构造标记id,但整个标记也会在很短的时间内消失,因此页面在加载新图像时会上下颠簸。有没有办法让
CHtml::ajax
更新
scr
而不是整个标记


或者我只是强迫自己编写真正的jQuery代码来实现我的目标

您可以通过在ajax数组的success属性中指定一个(自定义编写的)jquery函数来实现这一点,该函数将更新src。见:

类似这样的事情(但这取决于你的情况):


您可能想查看ajax页面中的jQuery:

恐怕我在这方面也需要一些帮助,您的意思是编写类似于
'success'=>'function(data){……}'
。我需要完整的工作示例。谢谢@我修改了我的答案。
echo CHtml::ajaxButton('BLAH','SendUrl?params=***',array( 
    'success'=>
        "function(return, status, jqXHR){
            if(status == 'success'){
                $('#image_tag_id').attr('src',return);
            }
       }"
    ),
);