当我按下按钮(tag===p
)时,试图显示首字母缩写词(tag===button
)的描述:
function myFunction() {
for (let i = 0; i > x.length; i++) {
var x = [];
x.push(document.getElementsByClassName("toggleAcronym"));
for (let j = 0; j > x.length; j++)
if (x[i][j].style.display === "none") {
x[i][j].style.display = "block";
}
}
}
#p6Acronyms {
width: 50%;
border: 1px solid blue;
margin: 0 auto;
padding: 20px;
}
.toggleAcronym {
display: none;
}
<!DOCTYPE HTML5>
<html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Intellectual Principles</title>
<meta name="description" content="sats">
<meta name="author" content="satser">
<link rel="stylesheet" type="text/css" href="Principles.css">
<script type="text/javascript" src="Principles.js"></script>
</head>
<body>
<div id="p6Acronyms">
<button onclick="myFunction()">RWE</button>
<p class="toggleAcronym">Real World Example</p>
<button onclick="myFunction()">CRUD</button>
<p class="toggleAcronym">Create, Read, Update, Delete</p>
<button onclick="myFunction()">CNS</button>
<p class="toggleAcronym">Central Nervous System</p>
<button onclick="myFunction()">MPS</button>
<p class="toggleAcronym">Muscle Protein Synthesis</p>
<button onclick="myFunction()">I.e.</button>
<p class="toggleAcronym">In essence</p>
<button onclick="myFunction()">ALAP</button>
<p class="toggleAcronym">As Long As Possible</p>
<button onclick="myFunction()">AMAP</button>
<p class="toggleAcronym">As Much As Possible</p>
<button onclick="myFunction()">CoC</button>
<p class="toggleAcronym">Contents of Consciousness</p>
<button onclick="myFunction()">RR(P)(F)-R</button>
<p class="toggleAcronym">Risk Reward (Probability)(Fragility) - Ratio</p>
<button onclick="myFunction()">AoL</button>
<p class="toggleAcronym">Area of Life (=Intellectual, Physical, Relationships & Intellectual)</p>
<button onclick="myFunction()">MBS</button>
<p class="toggleAcronym">Mind Body & Spirit</p>
<button onclick="myFunction()">QoC</button>
<p class="toggleAcronym">Quality of Consciousness</p>
<button onclick="myFunction()">PFC</button>
<p class="toggleAcronym">Pre-Frontal Cortex</p>
<button onclick="myFunction()">SRV</button>
<p class="toggleAcronym">Survival & Reproduction Value. //(Often used to describe factors directional effect on this.)</p>
<button onclick="myFunction()">P/T-R</button>
<p class="toggleAcronym">Practice/Theory-Ratio</p>
</div>
</body>
</html>
我怀疑JS不正确,但无法弄清楚如何正确处理它。我不知道如何将某个类的每个元素推到一个数组,然后对该数组中的每个元素,如果单击按钮,则显示段落。我是JavaScript的新手,不了解如何处理此错误消息:
“ message”:“未捕获的TypeError:无法读取未定义的属性'length'”
,谢谢您的帮助。
答案 0 :(得分:1)
如果要切换段落的文本,则不需要数组。您可以将this
传递给myFunction(this)
。然后在函数中,切换display
的{{1}}(即段落):
nextSibling
function myFunction(elm) {
var display = elm.nextSibling.style.display;
if (display === "none" || display === "") {
elm.nextSibling.style.display = "block";
} else {
elm.nextSibling.style.display = "none";
}
}
#p6Acronyms {
width: 50%;
border: 1px solid blue;
margin: 0 auto;
padding: 20px;
}
.toggleAcronym {
display: none;
}
答案 1 :(得分:0)
在每个段落中添加id并将该id传递给myFunction()
<button onclick="myFunction('RWE')">RWE</button><p id="RWE" class="toggleAcronym">Real World Example</p>
以及在myFunction中
function myFunction(x) {
if(document.getElementById(x).style.display === "block"){
document.getElementById(x).style.display = "none";
}else{
document.getElementById(x).style.display = "block";
}
}
我尝试过的效果很好