pageref()
Returns a marker that will be replaced with the element's page number after pagination. This only works for elements in the section that is currently being merged.
Example
Creating a table of contents
The following script creates a table of contents for all level 1 headings (<h1> elements) with the class title
in one section.
var toc = '<ul ID="toc">';
query('h1.title').each(function()
{toc += '<li>' + this.text() + ' <span class="li_toc">' + this.pageref() + '</span></li>';
});
toc += '</ul>';
results.after(toc);
The first line creates a variable for the table of contents, which will be a list (a <ul> element with the ID toc
). The start tag of the list is added to the variable.
The next line does a query for all level 1 headings (<h1> elements) with the class title
in the current section. With each()
the script loops through them. For each of the headings it adds a line item to the list, with the text (this.text()
) and the page reference of the respective heading.
After the loop, the end tag of the list is added to the variable.
Finally, the script adds the variable - that now contains the table of contents - after the results
. The results
object contains the elements that match the selector of the script. So, if the script's selector selects the title of the table of contents, the table of contents will be added after that.
The following style rules, added to the style sheet, will align the chapter titles to the left and the page numbers to the right:
#toc li {
text-align:left;
}
#toc span {
float: right;
}
Note that these styles use the list's ID, that was defined in the first line of code. For information about style sheets, see Styling templates with CSS files.