使用 javascript 创建 div 后无法将样式应用于我的网格

我正在使用以下网格。如果单击Link列的任何单元格,将在下方生成一个新网格。

每当我尝试使用下面代码document.getElementById("commonWindow").style.padding = "50px 10px 20px 30px";的以下行添加 css 样式时,它都会不断抛出错误 ( "Uncaught TypeError: Cannot read property 'style' of null)。但是,如果您将其注释掉,它就可以正常工作。我基本上是想在第一个网格和新创建的网格之间添加更多空间,每次单击链接列的任何单元格值时都会创建该网格。

  // prepare the data
    var url = "https://www.jqwidgets.com/jquery-widgets-demo/demos/sampledata/feed.xml";
    var source =
    {
        datatype: "xml",
        datafields: [
            { name: 'title', type: 'string' },
            { name: 'link', type: 'string' },
            { name: 'pubDate', type: 'date' },
            { name: 'creator', map: 'dc\\:creator', type: 'string' },
       ],
        root: "channel",
        record: "item",
        url: url
    };
    var linkrenderer = function (row, column, value) {
        if (value.indexOf('#') != -1) {
            value = value.substring(0, value.indexOf('#'));
        }
        var format = { target: '"_blank"' };
        var html = $.jqx.dataFormat.formatlink(value, format);
        //console.log(html)
        return html;
    }
    var dataAdapter = new $.jqx.dataAdapter(source);
    
    var cellsrenderer = function (row, column, value) {
        var currentRowData = $("#jqxgrid").jqxGrid('getrowdata', row);
        var rowDataLink = currentRowData["link"];

        return "<a href =" + rowDataLink + ">" + value + "</a>";
    };
        
        
    // Create jqxGrid.
    $("#jqxgrid").jqxGrid({
        width: 850,
        source: dataAdapter,
        pageable: true,
        autoheight: true,
        sortable: true,
        columns: [
          { text: 'Link', datafield: 'link', width: 550},
          { text: 'Title', datafield: 'title', width: 200, cellsrenderer: cellsrenderer },
          { text: 'Publish Date', datafield: 'pubDate', width: 250, cellsformat: "D" },
          { text: 'Creator', datafield: 'creator', width: 200 }
       ]
    });
    
     $("#jqxgrid").on("rowselect", function (e) {

        let link = $("#jqxgrid").jqxGrid('getcell', e.args.rowindex, 'link');
        console.log(link.value);
        $('#commonWindow').remove();
			  var elem = document.createElement('div');
			  elem.id = 'commonWindow';
        document.getElementById("commonWindow").style.padding = "50px 10px 20px 30px";
        
        $(elem).jqxGrid({
            source: dataAdapter, columns: [
                { text: 'Link', datafield: 'link', width: 550 },
                { text: 'Title', datafield: 'title', width: 200, cellsrenderer: cellsrenderer },
                { text: 'Publish Date', datafield: 'pubDate', width: 250, cellsformat: "D" },
                { text: 'Creator', datafield: 'creator', width: 200 }
            ] });
        document.body.appendChild(elem);
     });
<div id="jqxgrid">
        </div>
<link href="https://jqwidgets.com/public/jqwidgets/styles/jqx.base.css" rel="stylesheet"/>
<script src="https://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>

马克西米利安·劳迈斯特

当您的代码遇到以下行时:

document.getElementById("commonWindow").style.padding = "50px 10px 20px 30px";

...您实际上还没有将元素附加到 DOM,因此当您使用document.getElementById.

您实际将元素添加到 DOM 的位置在后面:

document.body.appendChild(elem);

相反,您应该直接使用 引用元素elem,就像您在代码中的其他地方所做的那样,如下所示:

elem.style.padding = "50px 10px 20px 30px";

尽管如此,将填充规则作为静态样式包含在您的 CSS 中而不是像这样将其添加到您的 JavaScript 中可能是最有意义的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用javascript创建div无法正常工作

来自分类Dev

使用javascript创建div无法正常工作

来自分类Dev

使用JavaScript创建动态div

来自分类Dev

无法使用Javascript将jQuery类应用于HTML DIV

来自分类Dev

使用Javascript向动态创建的div添加内联样式

来自分类Dev

使用javascript删除Javascript创建的<div>元素

来自分类Dev

无法将样式应用于javascript中动态创建的元素

来自分类Dev

将HTML文本插入到使用javascript创建的div中

来自分类Dev

使用相同的类javascript创建多个div

来自分类Dev

使用javascript / jquery创建动态div

来自分类Dev

使用JavaScript创建可折叠的div

来自分类Dev

如何使用Javascript创建可折叠div?

来自分类Dev

使用JavaScript创建和删除div

来自分类Dev

使用javascript将样式应用于某些列表项

来自分类Dev

如何将CSS应用于IE中使用javascript创建的元素?

来自分类Dev

无法隐藏由 javascript 创建的 div

来自分类Dev

使用JQuery for循环创建<div>网格

来自分类Dev

使用JavaScript的内嵌样式div

来自分类Dev

使用JavaScript创建一个div onclick

来自分类Dev

根据使用Javascript输入的表单创建div的新实例

来自分类Dev

使用Javascript创建一个下拉div

来自分类Dev

使用javascript或jQuery移动div创建无限循环

来自分类Dev

使用JavaScript动态创建具有多个元素的多个div?

来自分类Dev

Javascript-将数组拆分为两个,使用用于href和innerHTML的新数组创建<div> <a>

来自分类Dev

我的CSS #wrapper样式需要使用div应用于HTML文档

来自分类Dev

如何使用Javascript将div写入div

来自分类Dev

使用 javascript 对 <div> 应用更改

来自分类Dev

无法将 eventListener 添加到通过 JavaScript 创建的 div

来自分类Dev

使用javascript将div居中?

Related 相关文章

热门标签

归档