如何通过比较 2 个 id 来改变锚点(文本)的外观?
How to change the appearance of an anchor (text) by comparing 2 id?
我正在为我的网站构建类似书籍的分页样式。它由 4 部分代码组成:应该显示的文本、页码、"next" 和 "previous" 按钮以及确定显示哪个 part/page 文本的脚本。
var current = 1;
var totalPages = document.getElementById("pageContainer").childElementCount;
function showPages(id = 1) {
if (id < 1 || id > totalPages)
return;
curr_page = document.getElementById("page" + current);
curr_page.classList.add("pageHidden");
curr_page.classList.remove("pageDisplayed");
target_page = document.getElementById("page" + id);
target_page.classList.add("pageDisplayed");
target_page.classList.remove("pageHidden");
current = id;
}
.pageHidden
{
display: none;
}
.pageDisplayed
{
display: block;
}
<div id="pageContainer">
<div class="pageDisplayed" id="page1"><p>page 1 displayed</p></div>
<div class="pageHidden" id="page2"><p>That is the second page.</p></div>
<div class="pageHidden" id="page3"><p>And finally a third one.</p></div>
</div>
<h2>pages :
<a href="#" id="1" onclick="showPages(1)">1</a>
<a href="#" id="2" onclick="showPages(2)">2</a>
<a href="#" id="3" onclick="showPages(3)">3</a>
</h2>
<h2>
<span style="float: left;">
<a href="#" onclick="showPages(current - 1)">Previous</a>
</span>
<span style="float: right;">
<a href="#" onclick="showPages(current + 1)">Next</a>
</span>
</h2>
现在,我想通过更改 link 的外观来标记正在显示的实际页面。现在它显示
"Pages: 1 2 3"
我希望它成为,例如:
"Pages: 1 [2] 3"(标记为“[2]”的颜色不同)。
我找到了方法,但我无法让它与 "next" 和 "previous" 按钮一起使用,这些按钮在触发时不会突出显示锚号。
基本上,如果函数 showPages returns "page2",id 为“2”的锚点“2”应该如下所示:[2].
我认为这意味着我必须将页面容器中的 ID 与分页部分中的 ID 进行比较...有人知道我该怎么做吗?
与您隐藏上一个块并显示新块相同。使用以下 css:
创建一个 css class
.page:before{
content: '['
}
.page:after{
content: ']'
}
此css 将用括号[].
包装第class 页的任何元素
现在将页面 class 添加到所选页面并从旧页面中删除。
pageNum = document.getElementById("" + id);
pageNum.classList.add("page")
pageNum = document.getElementById("" + current);
pageNum.classList.remove("page")
这是您的工作代码。
var current = 1;
var totalPages = document.getElementById("pageContainer").childElementCount;
function showPages(id = 1) {
if (id < 1 || id > totalPages)
return;
curr_page = document.getElementById("page" + current);
curr_page.classList.add("pageHidden");
curr_page.classList.remove("pageDisplayed");
target_page = document.getElementById("page" + id);
target_page.classList.add("pageDisplayed");
target_page.classList.remove("pageHidden");
pageNum = document.getElementById("" + id);
pageNum.classList.add("page")
pageNum = document.getElementById("" + current);
pageNum.classList.remove("page")
current = id;
}
.pageHidden
{
display: none;
}
.pageDisplayed
{
display: block;
}
.page:before{
content: '['
}
.page:after{
content: ']'
}
<div id="pageContainer">
<div class="pageDisplayed" id="page1"><p>page 1 displayed</p></div>
<div class="pageHidden" id="page2"><p>That is the second page.</p></div>
<div class="pageHidden" id="page3"><p>And finally a third one.</p></div>
</div>
<h2>pages :
<a href="#" class="page" id="1" onclick="showPages(1)">1</a>
<a href="#" id="2" onclick="showPages(2)">2</a>
<a href="#" id="3" onclick="showPages(3)">3</a>
</h2>
<h2>
<span style="float: left;">
<a href="#" onclick="showPages(current - 1)">Previous</a>
</span>
<span style="float: right;">
<a href="#" onclick="showPages(current + 1)">Next</a>
</span>
</h2>
给你..
我正在为我的网站构建类似书籍的分页样式。它由 4 部分代码组成:应该显示的文本、页码、"next" 和 "previous" 按钮以及确定显示哪个 part/page 文本的脚本。
var current = 1;
var totalPages = document.getElementById("pageContainer").childElementCount;
function showPages(id = 1) {
if (id < 1 || id > totalPages)
return;
curr_page = document.getElementById("page" + current);
curr_page.classList.add("pageHidden");
curr_page.classList.remove("pageDisplayed");
target_page = document.getElementById("page" + id);
target_page.classList.add("pageDisplayed");
target_page.classList.remove("pageHidden");
current = id;
}
.pageHidden
{
display: none;
}
.pageDisplayed
{
display: block;
}
<div id="pageContainer">
<div class="pageDisplayed" id="page1"><p>page 1 displayed</p></div>
<div class="pageHidden" id="page2"><p>That is the second page.</p></div>
<div class="pageHidden" id="page3"><p>And finally a third one.</p></div>
</div>
<h2>pages :
<a href="#" id="1" onclick="showPages(1)">1</a>
<a href="#" id="2" onclick="showPages(2)">2</a>
<a href="#" id="3" onclick="showPages(3)">3</a>
</h2>
<h2>
<span style="float: left;">
<a href="#" onclick="showPages(current - 1)">Previous</a>
</span>
<span style="float: right;">
<a href="#" onclick="showPages(current + 1)">Next</a>
</span>
</h2>
现在,我想通过更改 link 的外观来标记正在显示的实际页面。现在它显示 "Pages: 1 2 3" 我希望它成为,例如: "Pages: 1 [2] 3"(标记为“[2]”的颜色不同)。
我找到了方法,但我无法让它与 "next" 和 "previous" 按钮一起使用,这些按钮在触发时不会突出显示锚号。
基本上,如果函数 showPages returns "page2",id 为“2”的锚点“2”应该如下所示:[2].
我认为这意味着我必须将页面容器中的 ID 与分页部分中的 ID 进行比较...有人知道我该怎么做吗?
与您隐藏上一个块并显示新块相同。使用以下 css:
创建一个 css class.page:before{
content: '['
}
.page:after{
content: ']'
}
此css 将用括号[].
包装第class 页的任何元素现在将页面 class 添加到所选页面并从旧页面中删除。
pageNum = document.getElementById("" + id);
pageNum.classList.add("page")
pageNum = document.getElementById("" + current);
pageNum.classList.remove("page")
这是您的工作代码。
var current = 1;
var totalPages = document.getElementById("pageContainer").childElementCount;
function showPages(id = 1) {
if (id < 1 || id > totalPages)
return;
curr_page = document.getElementById("page" + current);
curr_page.classList.add("pageHidden");
curr_page.classList.remove("pageDisplayed");
target_page = document.getElementById("page" + id);
target_page.classList.add("pageDisplayed");
target_page.classList.remove("pageHidden");
pageNum = document.getElementById("" + id);
pageNum.classList.add("page")
pageNum = document.getElementById("" + current);
pageNum.classList.remove("page")
current = id;
}
.pageHidden
{
display: none;
}
.pageDisplayed
{
display: block;
}
.page:before{
content: '['
}
.page:after{
content: ']'
}
<div id="pageContainer">
<div class="pageDisplayed" id="page1"><p>page 1 displayed</p></div>
<div class="pageHidden" id="page2"><p>That is the second page.</p></div>
<div class="pageHidden" id="page3"><p>And finally a third one.</p></div>
</div>
<h2>pages :
<a href="#" class="page" id="1" onclick="showPages(1)">1</a>
<a href="#" id="2" onclick="showPages(2)">2</a>
<a href="#" id="3" onclick="showPages(3)">3</a>
</h2>
<h2>
<span style="float: left;">
<a href="#" onclick="showPages(current - 1)">Previous</a>
</span>
<span style="float: right;">
<a href="#" onclick="showPages(current + 1)">Next</a>
</span>
</h2>
给你..