我想只显示特定的 div
。我决定这样做的方式是先隐藏所有以 "page" 开头的元素,然后只显示正确的 div
。以下是我的(简化版)代码:
<form>
<input type="text" onfocus="showfields(1);">
<input type="text" onfocus="showfields(2);">
</form>
<div class="page1 row">Some content</div>
<div class="page1 row">Some content</div>
<div class="page2 row">Some content</div>
<div class="page2 row">Some content</div>
<script>
function showfields(page){
//hide all items that have a class starting with page*
var patt1 = /^page/;
var items = document.getElementsByClassName(patt1);
console.log(items);
for(var i = 0; i < items.length; i++){
items[i].style.display = "none";
}
//now show all items that have class 'page'+page
var item = document.getElementsByClassName('page' + page);
item.style.display = '';
}
</script>
当我console.log(items);
时,得到一个空的数组。我相信正则表达式是正确的(获取以“page”开头的所有项目)。我使用的代码是老派的JS,但我不排斥使用jQuery。如果有一种不使用正则表达式的解决方案,那也可以,因为我是刚开始使用正则表达式。