我想使用jquery更改图像的src但我的代码不起作用。 这是我的代码:
$(document).ready(function () {
$("#imgCaptcha").click(function () {
$.ajax({
url: "/Account/CaptchaImage",
success: function (result) {
var img_src = $(this).attr('src');
var timestamp = new Date().getTime();
$(this).attr('src', img_src + '?' + timestamp);
}
});
});
});
我编辑了我的代码,但仍然没有工作:
$(document).ready(function () {
$("#imgCaptcha").click(function () {
$.ajax({
url: "/Account/CaptchaImage",
success: function (result) {
var img_src = result;
var timestamp = new Date().getTime();
$("imgCaptcha").attr('src', img_src + '?' + timestamp);
}
});
});
});
$(document).ready(function () {
$("#imgCaptcha").click(function () {
$.ajax({
url: "/Account/CaptchaImage",
type: "post",
success: function (result) {
$("#imgCaptcha").attr("src", "/Account/CaptchaImage/?r=" + Math.random());
}
});
});
});
答案 0 :(得分:0)
你处于关闭状态,所以你所指的$(this)
不是你想的那个,你应该把它保存在变量中以便以后访问它:
$("#imgCaptcha").click(function () {
var self = $(this);
$.ajax({
url: "/Account/CaptchaImage",
success: function (result) {
var img_src = self.attr('src');
var timestamp = new Date().getTime();
self.attr('src', img_src + '?' + timestamp);
}
});
});
答案 1 :(得分:0)
$(document).ready(function () {
$("#imgCaptcha").click(function () {
$.ajax({
url: "/Account/CaptchaImage",
success: function (result) {
var img_src = $("#imgCaptcha").attr('src');
var timestamp = new Date().getTime();
$("#imgCaptcha").attr('src', img_src + '?' + timestamp);
}
});
});
});
答案 2 :(得分:0)
您需要参考的是图像ID。但是使用this
将引用Ajax上下文。你不想要的。这就是为什么它给你错误的原因。请尝试使用以下代码
$(document).ready(function () {
$("#imgCaptcha").click(function () {
$.ajax({
url: "/Account/CaptchaImage",
success: function (result) {
var img_src = $('#imgCaptcha').attr('src');
var timestamp = new Date().getTime();
$('#imgCaptcha').attr('src', img_src + '?' + timestamp);
}
});
});
});
如果将代码更新为var img_src = result;
,则无法使其正常运行。然后请了解您应该作为普通图像源获得响应。不是任何其他MIME类型数据的图像,如link_here.png(XML)
你应该得到的是
/link/to/file.png
一旦被捕获。您将加载图像并将Timestand附加到其上。
您应该担心的是,您的请求中存在错误。虽然您的代码足以加载图像。但是你应该总是尝试捕获错误事件。将其添加到您的代码中
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("some error");
}
这会让你知道错误是什么。
其次,应该始终使用浏览器的控制台。要知道请求是什么,发送的位置以及响应是什么。您可以在浏览器中使用 F12 访问它。它甚至会显示服务器发送给您的响应。
答案 3 :(得分:0)
<script>
$("#refresh").click(function () {
var img = $('<img />', {
id: 'CaptchaImg'
});
img.attr("style", "height:42px;")
img.removeAttr("src")
img.attr('src', '@Url.Action("ShowCaptchaImage", "Support")/' + new Date().getTime());
$("#test").html('');
img.appendTo('#test');
});
</script>
&#13;
$(&#34;#refresh&#34;)。click(function(){ var img = $(&#39;&#39;,{ id:&#39; CaptchaImg&#39; }); img.attr(&#34; style&#34;,&#34; height:42px;&#34;) img.removeAttr(&#34; SRC&#34) img.attr(&#39; src&#39;,&#39; @ Url.Action(&#34; ShowCaptchaImage&#34;,&#34;支持&#34;)/&#39; +新日期() .getTime()); $(&#34;#测试&#34)的HTML(&#39;&#39)。 img.appendTo(&#39;#测试&#39); });