首页 > 解决方案 > jQuery对象输出未定义

问题描述

我很难让函数在 JavaScript 中使用 innerHTML 调用返回输出。

它输出为“未定义”:
在此处输入图像描述

这是代码:

$(document).ready(function(){
    $pnp.setup({
        baseUrl: "https://fh126cloud.sharepoint.com/TrainingResourceCenter/O365Training"
    });

    $pnp.sp.web.lists.getByTitle("O365RoadMap").items.get().then(function(items) {
        console.log(items);
        var result = items.map(item => {
            return {
                Title: item.Title,
                Description: item.Description,
                Link: item.Link
            }
        });
        var $table = roadMapDisplay(result);
        console.log($table);
        document.getElementById('title').innerHTML = $table.innerHTML;
    });

    function roadMapDisplay(items) {

        var table = $('<table/>');

        items.forEach(item => {
            table.append('<tr/>');
            table.append(`<td>${item.Title}</td>`);
            table.append(`<td>${item.Description}</td>`);
            table.append(`<td>${item.Link}</td>`);
        });

        return table;
        
    } 
});
<div id="title"></div>

<script src="/TrainingResourceCenter/O365Training/SiteAssets/roadmap.js?v=1"></script>

我希望它从 roadMapdisplay 输出结果。

标签: javascriptjqueryhtmlarraysjson

解决方案


innerHTML是一个 DOM 元素属性,不直接被 jQuery 公开。改为使用它html()

参考。http://api.jquery.com/html/

document.getElementById('title').innerHTML = $table.html();

推荐阅读