将参数传递给动态创建的div元素?

时间:2015-03-10 14:02:37

标签: javascript jquery html css

我有一个页面,我在父页面的div中动态创建了几个div。

for (i = 0; i < pages.length; i++) {
        var e = document.createElement("div");
        var eid = "dynamicdiv-" + i;
        e.id = eid;
        e.style.cssText = 'position:absolute; left: ' + left + 'px; color: #0000bb;';
        maindiv.appendChild(e);
        $('#' + eid).load(pages[i]);
    }

我的网页变量是一个网址字符串数组。它们都是html页面,并有自己的参数。我遇到的问题是jquery load()。它似乎没有传递我创建页面所需的参数。相反,它从我的父页面传递参数。这些页面上的CSS也没有加载。

我对javascript很新,任何帮助都会非常感激。

示例网址: http://example.com/index.html?param1=value

有什么想法吗?谢谢!

3 个答案:

答案 0 :(得分:2)

jQuery load函数很好并且运行正常,您应该在JavaScript代码或服务器端查找此问题,这会创建HTML页面。所以一些指导原则如下

  • 在jQuery加载函数之前添加consol.log(...),并确保加载URL完全符合您的要求。
  • 在浏览器的新标签页中打开该网址,检查其HTML代码/内容是否合适。

另请注意,如果动态加载的HTML代码具有CSS样式表,则应首先预加载它们。

作为旁注,我真的很想知道为什么在 Super Powerful jQuery存在时使用 pure JavaScript来创建/附加元素。

for (i = 0; i < pages.length; i++) {
    $('<div></div>')
        .attr('id', "dynamicdiv-" + i)
        .css({'position': 'absolute', 'left', left + 'px', 'color', '#0000bb'})
        .appendTo(e);

    $('#' + eid).load(pages[i]);
}

答案 1 :(得分:0)

关于CSS问题:

您不应使用此功能加载entiere页面。此功能旨在加载部分页面&#34; (没有或标记,只是内部的身体)。

你的css应该包含在你的主页面中,并且加载应该可以帮助你只加载所需的html(它将使用你主页面的CSS)。

关于参数问题:

您可以为您的网址提供参数吗?使用load()传递URL参数应该可以工作。

答案 2 :(得分:0)

maindiv.appendChild(e);

而不是

maindiv.appendChild(element);

或者我错过了什么?