我正在尝试访问按钮元素(div)的parentNode,但每次都会出错。这是我想要做的。简单地说,这是一个有2个div的页面。我只希望一次显示一个div。第一页上有一个按钮切换到第二页,而第二页上的按钮应该返回第一页(但不是因为它找不到parentNode)。
<div class="pageContent" id="page_3">
<div class="primaryPage" id="primaryPage_3">
<h2>Bills_______________________</h2>
<p>Here are my monthly Bills<br><br>blah blah</p>
<button type="button" id="billButton" onclick="newBill()">Add Bill</button>
</div>
<div class="pageContent" id="billPage">
<p>this is the bill page</p>
<button class="backButton" onclick="back()">Back</button>
</div>
</div>
function newBill(){
document.getElementById("primaryPage_3").style.display = "none";
document.getElementById("billPage").style.display = "block";
document.getElementById("billPage").setAttribute("back", "primaryPage_3");
}
function back(){
var previousPage = this.parentNode.getAttribute("back");
this.parentNode.style.display = "none";
document.getElementById(previousPage).style.display = "block";
}
答案 0 :(得分:1)
改变这个......
onclick="back()"
到此......
onclick="back.call(this)"
使用.call()
调用函数可以手动设置被调用函数的调用上下文(this
值)。在这里它将它设置为当前元素。