【问题标题】:Changes in div content are not reflecting in the browserdiv 内容的更改不会反映在浏览器中
【发布时间】:2021-03-06 22:09:34
【问题描述】:

我正在尝试使用脚本更改 div "info" 的内容,如下所示

但是我们可以看到 div 的内容在被检查的屏幕中发生了变化,并且没有反映在浏览器屏幕中。

请帮我解决这个问题。

function GeneratePaySlips() {
    ShowLoaderOnElement(".btn-generate");
    if ($("#driverIDs").val().length > 0) {
        var i = 0;
        var driverIDs = $("#driverIDs").val().split(',');
        //for (var i = 0; i < driverIDs.length; i++)
        for (i = 0; i < 5; i++) {
            document.getElementById("info").innerHTML = i + 1 + ' of ' + $("#totalDrivers").val();
            $.ajax({
                type: "POST",
                data: { "driverID": driverIDs[i] },
                async: false,
                cache: false,
                url: '/BulkPaySlip/GeneratePaySlip',
                success: function (response) {
                    if (response.isSuccess) {
                    }
                    else {
                    }
                },
                error: function (response) {
                    HideLoaderOnElement(".btn-generate");
                },
                complete: function () {

                }
            });
        }
        if (i >= driverIDs.length) {
            HideLoaderOnElement(".btn-generate");
        }
    }
}

【问题讨论】:

  • 您能否将我们链接到一个示例,以便我们尝试调试它?
  • 如果调试器说文本在那里,但只是没有显示出来,那么这可能是 CSS 问题,而不是 JavaScript 问题。尝试添加 background:red !important; font-size:16px !important;white-space:nowrap; 以确保您实际上在寻找正确的位置,并且它不是简单地被 overflow:hidden; 或类似的愚蠢的东西隐藏。
  • 另一种判断您的javascript是否与问题有关的简单方法是双击它,然后手动将文本更改为Lorem ipsum dolor sit。如果您没有看到所有内容,请检查您的 CSS。

标签: javascript html jquery ajax google-chrome


【解决方案1】:

所以我看不到所有代码,但可能会将代码放在 html 元素之前的

【讨论】:

【解决方案2】:

首先innnerHTML用于改变你调用的指定元素的内容。在您上面的代码中,内容将转到 div 元素而不创建任何元素标签,因此不会显示您想要的内容。 如果您需要在 DIV 标签上创建另一个元素,下面的代码可以工作

.innerHTML = '<p>' + $('#totalDrivers').value + '</p>

或者您可以尝试创建一个新元素,稍后您可以根据您的 for 循环将其附加到 div 五次。运行下面的代码

for (var i = 0; i < 5; i++) {
    var element = document.createElement('p')
    var text = $('#totalDrivers').value /* You can use strings to show the result fast // var text = 'i am coming' // */
    element.textContent = text
    document.getElementById('text').appendChild(element)
}

代码是不言自明的,很抱歉提到这一点。

【讨论】:

  • 谢谢。你能检查一下我的功能吗?
  • 只需将以下内容更改为我建议的上述示例之一,tit 就可以了。更改以下内容: document.getElementById("info").innerHTML = i + 1 + ' of ' + $("#totalDrivers").val();为我工作
猜你喜欢
  • 2017-10-08
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 2019-02-26
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
相关资源
最近更新 更多