javascript - 为什么无法使用 ajax 调用的响应更新 html img src

标签 javascript html image

我有一些 html,其中包含一个 table 和一些 tr 行,每行都有一个 td 元素,其中包含 img 元素。在页面的其他地方,我有一个 ajax 方法,它将 url 发送到服务器,然后服务器将其保存在本地并返回位置。

然后,我尝试使用新的 url 更新每个 img 元素的 src 属性元素,但没有任何更新。我的调试警报调用显示找到了图像元素并返回了正确的位置,但不知道我做错了什么。

HTML

  <table class="edittable" id="ARTWORK_TABLE">
    <tr>
        <th class="tableheading verysmallinputfield" style="position:relative">
            <label>
                #
            </label>
        </th>
        <th class="tableheading verysmallinputfield" style="position:relative">
            <label>
                Replace
            </label>
        </th>
        <th class="tableheading verylargeinputfield" style="position:relative">
            <label>
                Filename
            </label>
        </th>
        <th class="tableheading mediuminputfield" style="position:relative">
            <label>
                Artwork
            </label>
        </th>
    </tr>
    <tr id="menu_artwork1">
        <td class="tableheading">
            0
        </td>
        <td>
            <input type="checkbox">
        </td>
        <td>
            <label>
                E:\Music\Tango in the Night\02 - Seven Wooooooonders.WAV
            </label>
        </td>
        <td>
            <img src="images/51sjc9qpk4oqFYZdroM04w==_thumbnail.jpg" width="32px" height="32px" title="600 x 585">
            <label>
                600 x 585
            </label>
        </td>
    </tr>
    <tr id="menu_artwork2">
        <td class="tableheading">
            1
        </td>
        <td>
            <input type="checkbox">
        </td>
        <td>
            <label>
                E:\Music\Tango in the Night\03 - Everywhere.WAV
            </label>
        </td>
        <td>
            <img src="images/51sjc9qpk4oqFYZdroM04w==_thumbnail.jpg" width="32px" height="32px" title="600 x 585">
            <label>
                600 x 585
            </label>
        </td>
    </tr>
.........

Javascript Ajax函数

function sendFormData(urls)
{
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/editsongs.update_artwork', false);
    xhr.setRequestHeader("Content-type", "text/plain");
    xhr.send(urls[0]);
    var images = document.getElementById("ARTWORK_TABLE").getElementsByTagName("img");
    alert("Found img"+images.length);
    for(image in images)
    {
        alert(xhr.responseText);
        image.src = xhr.responseText;
    }
}

最佳答案

尝试改变

image.src = xhr.responseText;

images[image].src = xhr.responseText;

参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in了解更多详情

关于javascript - 为什么无法使用 ajax 调用的响应更新 html img src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49372229/

相关文章:

css - 使用百分比缩放图像 Sprite : Possible?

python - ImageSpecField 对 django-rest-framework 中的 django-imagekit 什么都不做

android - 如何在触摸android中图像的特定位置时创建一个点

Javascript onsubmit clearcontent 不起作用

javascript - Node JS 不提供静态图像

jquery - 向 Bootstrap 导航栏添加额外的动画

javascript 过滤器功能在 IE 11 中不起作用,但在 Chrome 和 Mozilla 中运行良好

javascript - Angular 选择类 if else

javascript - Youtube 数据 API - 未捕获的类型错误 : Cannot read property 'setApiKey' of undefined

javascript - 如果 onload 值为空,则不加载模态