【问题标题】:JQuery not rendering HTMLJQuery 不呈现 HTML
【发布时间】:2011-07-30 10:03:18
【问题描述】:

我在我的 ASP.NET MVC 3 应用程序中使用 $.get() 以异步方式从数据库获取响应。我得到正确返回的响应,并根据响应在字符串变量中生成我的 HTML,最后将其附加到我的标记页面上已经存在的 div 中。在调试模式下,它会显示创建的完整 HTML,但不会在浏览器中呈现。

这是我的示例代码

$.get("/Modules/FetchModuleActionsByModuleID", { ModuleID: ModuleID }, function (response)
{
    if (response.replace(/"/g, '') != '{d:[]}' && response.replace(/"/g, '') != '{d:null}' && response.replace(/"/g, '') != '' && response != '')
    {
        var actions = eval('(' + response + ')');
        var moduleHtml="";
        if (actions.length > 0)
        {
            for (i = 0; i < actions.length; i++)
            {

                moduleHtml += "<div class='moduleFieldSetting'>";
                moduleHtml += "<span class='pdRL10x2 fl'><input type='checkbox' name='" + ModuleName + "_Actions' value='" + actions[i].ActionID + "' /></span>";
                moduleHtml += "<span>" + actions[i].ActionName + "</span>";
                moduleHtml += "<div class='clear'></div>";
                moduleHtml += "</div>";
            }

            moduleHtml += "<div class='fr mt15'>";
            moduleHtml += "<span class='fr'><input type='button' class='inpuButtonAdd' value='Save' /> ";
            moduleHtml += "<input type='button' class='inpuButtonAdd' value='Cancel' /> ";
            moduleHtml += "</span>"
            moduleHtml += "</div>";

            moduleHtml += "</div>";

            moduleHtml += "<div class='clear'></div>";
            moduleHtml += "</div>";
            moduleHtml += "</div>";
            moduleHtml += "<div class='clear'></div>";


            $("#divModuleDetails").append(moduleHtml); //appending to div
        }
    }
});

这可能是什么原因造成的?

【问题讨论】:

  • 这个问题只存在于 IE 中。在 FireFox 中工作
  • 你用的是什么IE版本?
  • 您是否尝试过缩减moduleHTML 直到问题消失?至少,这会让你对问题有所了解。

标签: jquery html


【解决方案1】:

看看这一行:

moduleHtml += "</span>"

我认为问题在于脚本仍然只打印一个跨度但可能什么都没有:)

无论如何在脚本优化下面结帐,我认为它应该可以工作;)

    $.get("/Modules/FetchModuleActionsByModuleID", { ModuleID: ModuleID }, function (response)
{
    if (response.replace(/"/g, '') != '{d:[]}' && response.replace(/"/g, '') != '{d:null}' && response.replace(/"/g, '') != '' && response != '')
    {
        var actions = eval('(' + response + ')');
        var moduleHtml;
        if (actions.length > 0)
        {
            for (i = 0; i < actions.length; i++)
            {

                moduleHtml += "<div class='moduleFieldSetting'>"
                + "<span class='pdRL10x2 fl'><input type='checkbox' name='" 
                + ModuleName
                + "_Actions' value='" 
                + actions[i].ActionID 
                + "' /></span>"
                + "<span>" 
                + actions[i].ActionName 
                + "</span>"
                + "<div class='clear'></div>"
                + "</div>";
            }

           moduleHtml += "<div class='fr mt15'>"
            +"<span class='fr'><input type='button' class='inpuButtonAdd' value='Save' /> "
            + "<input type='button' class='inpuButtonAdd' value='Cancel' /> "
            +"</span>"
            + "</div>"
            + "</div>"
            + "<div class='clear'></div>"
            + "</div>"
            + "</div>"
            + "<div class='clear'></div>";


            $("#divModuleDetails").append(moduleHtml); //appending to div
        }
    }
});

【讨论】:

  • 那么 ... 确保你有最新的 jquery 版本 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 2012-05-07
  • 2015-02-08
相关资源
最近更新 更多