2011-07-12 36 views
1

我设立一个表的一些基本的分页,我有以下JS功能:HTML通过传递链路信息JavaScript方法

function AddPagination() { 
    var paginationDiv = document.getElementById("pagination"); 
    for (i = 0; i < 3; ++i) { 
     var page = document.createElement("a"); 
     page.innerHTML = i + 1; 
     page.setAttribute("title", i + 1); 
     page.setAttribute("href", "javascript:RenderResultTable(this.innerHTML)"); 
     paginationDiv.appendChild(page); 
    } 
} 

我想要做的就是通页码点击到RenderResultTable方法。我将这个数字存储为link元素的innerHTML和标题,我怎样才能通过使用上面的代码来获得这个通过?

谢谢。

回答

1

个人而言,我不会使用JavaScript进行分页,但如果这是您想要的方式,则需要使用一些字符串连接。我不确定RenderResultTable()是做什么的,但你可以像这样设置线条:

page.setAttribute("href", "javascript:RenderResultTable('" + page.innerHTML + "')"); 

我相信应该这样做。

编辑:你不应该在你的循环中使用i++而不是++i?我认为你现在所拥有的将会给2作为第一个页码。如果我错了,请纠正我。

编辑:page.innerHTML将需要通过此功能逃脱,然后转义在RenderResultTable()功能。 escape()unescape()。这是为了防止JavaScript注入和/或意外的错误。

+0

++我应该没问题 - 其他地方有很多讨论,为什么前或后增量在for循环中更高效(或不是),取决于语言。试试看:http://jsfiddle.net/samdutton/DpmhP/ –

+1

你可能想为arg引用RenderResultTable,即''javascript:RenderResultTable('“+ page.innerHTML +”')“);'因为你可能并不总是有一个数字作为innerHTML – mrk

+0

谢谢。固定。 :) –