1

我已经设法让 AJAX 工作,以便在单击图像时执行 PHP,但是,我希望在不重新加载页面的情况下实时直观地显示此结果,所以我想<img>在单击时更改标签的类.

我的图像标签目前类似于<img title="<?=$game['name']?>" class="game_<?=$complete?>" src="<?=$gameimgurl?>">,我想用 PHP/AJAX 在点击时更改它。

这可能吗?谢谢!:D

编辑:由于您对这一行的回答,我已经修复了它:document.getElementById(var1).className = "game_"+var2;

但是,这只能工作一次,因为 var2 是由页面上的 PHP 提供的,并且保持不变 - 有什么办法可以让它在第二次单击时恢复到原始/上一个类,以便它无限工作?

我只是在这里猜测,但是 JS 有什么方法可以获取当前类,并且可能有某种“if”语句将其更改为相反的?

4

2 回答 2

3

您可以使用.attr()设置类,如下所示:

$("#idname").attr('class', 'newClass');

如果要添加类,请改用.addclass(),如下所示:

$("#idname").addClass('newClass');

您还可以使用.removeClass()删除类

$("#idname").removeClass('newClass');
于 2013-08-07T14:09:33.363 回答
2

如果你的目的只是改变你不需要 AJAX 调用的 css 类名。您可以直接使用 javascript 或 jquery(如果您使用的是 jquery)

Javascript

添加/更改元素的类:

document.getElementById("idMyElement").className = "MyCssClass";

向元素添加额外的类:

document.getElementById("idMyElement").className += " MyCssClass";[注意:在 MyCssClass 之前添加一个空格]

从元素中删除一个类:

document.getElementById("idMyElement").className =  document.getElementById("idMyElement").className.replace
      ( /(?:^|\s)MyCssClass(?!\S)/g , '' );

如果您想按照@Harshal Mahajan 的建议使用 Jquery

如果您需要在 AJAX 调用后进行更改,您可以在 AJAX 调用的响应中使用上述内容。

于 2013-08-07T14:27:05.853 回答