如何使用javascript在jsp页面中动态添加内容?

时间:2014-01-11 15:45:30

标签: javascript jquery jsp

MyServlet转发到Mypage.jsp

request.getRequestDispatcher("/pages_homepage.jsp?value="+count).forward(request, response);

其中count是生成的整数值

下面是我的JSP代码(Mypage.jsp),

<body  onload="getPage('<%request.getParameter("value");%>')">
    <div id="app"></div>
</body>

以下是我的javascript代码

function getPage(match){
    var arr = new Array();
    var ele = document.getElementById('app');
    for(var i=0;i<match;i++){
        var newdiv = document.createElement("label");
        newdiv.id = arr[i];
        newdiv.value="Page";
        ele.appendChild(newdiv);
    }
}

我想要的是,我希望'Page'显示'匹配'次数。但是我无法通过上面的代码这样做。他们的js代码可能有问题。任何人都可以建议我更正吗? 提前谢谢。

3 个答案:

答案 0 :(得分:3)

LIVE DEMO

考虑到您的网页有类似的内容:

<body  onload="getPage(5)">

function getPage(n) {

   var ele = $('#app');
   var labels = ""; // An empty string will be populated with labels elements:
   for(var i=0; i<n; i++){
       labels += '<label id="'+ i +'"> Page </label>'
   }
   ele.append( labels ); // append only once outside the loop!

}

结果将是:

 <label id="0"></label>
 <label id="1"></label>
 <label id="2"></label>
 <label id="3"></label>
 <label id="4"></label>

如果您想从1而不是0开始使用:

labels += '<label id="'+ (i+1) +'"> Page </label>'

注意: ID以(/仅包含)数字开头 - 仅在HTML5中有效

答案 1 :(得分:1)

您的代码正在运行,我已对其进行了测试

由于您在label标签中没有任何内容,因此它在浏览器中不可见

其次是一个小错误  在第6行的js代码

       newdiv.id = arr[i];

arr [i]没有给出任何值,因此用

更改它
        newdiv.id = i;

享受您的代码

答案 2 :(得分:0)

感谢大家的帮助,但我想我得到了答案,

而不是

<body  onload="getPage('<%request.getParameter("value");%>')"> 

我写道,

<body onload="getPage('<%=Integer.parseInt(request.getParameter("value"))%>')">

但再次感谢大家的有用指示。