javascript:onclick转到特定的div

时间:2013-11-04 12:49:40

标签: javascript html onclick

我正在尝试用div创建一个“图表”。如果用户点击下一步它会显示下一个div等等(这已经完成),但是我想要达到的是,有时一些div会有一个带有“是”或“否”按钮的问题,那些按钮将针对某个特定的div。

Ex:Div 1 - 你还好吗?是的 - 转到Div 2 |不 - 转到第3区。

有没有办法使这种动态?所有div都有一个ID。

这是我到目前为止的代码。

HTML

 <div id="main">   
  <h3 class="despistes">Some Title</h3>
      <div class="info" id="1" style="display:block">Div 1</div>
      <div class="info" id="2">Div 2</div>
      <div class="info" id="3">Div 3</div>
      <div class="info" id="4">Div 4</div>
      <div class="info" id="5">Div 5</div>
      <div class="info" id="6">Div 6</div>
      <div class="info" id="7">Div 7</div>
      <div class="info" id="8">Div 8</div>

 <button class="button" onclick="mostraDiv('inicio')" style="float:left">inicio</button>
 <button class="button" onclick="mostraDiv('avancar')" style="float:right">seguinte</button>
 <button class="button" onclick="mostraDiv('anterior')" style="float:right">retroceder</button>

</div>

JS

var divNo = 0;
function mostraDiv(direction) {
  var sel = document.getElementById('main').getElementsByTagName('div');
  for (var i=0; i<sel.length; i++) { sel[i].style.display = 'none'; }
  switch (direction) {
    case 'inicio' : divNo = 0; break;
    case 'anterior' : divNo--;   break;
    case 'avancar' : divNo++;   break;
    case 'ultima' : divNo = sel.length-1; break;

  }
  if (divNo > sel.length-1) { divNo = 0; }
  else { if (divNo < 0) { divNo = sel.length-1; } }
  sel[divNo].style.display = 'block';
}

onload = function() {
  mostraDiv('s');
};

我在这里找到的这个功能对我来说很好。

先谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

<p>Are You OK ?</p>
<button class="button" onclick="goToDiv(2)" style="float:left">Yes</button>
<button class="button" onclick="goToDiv(3)" style="float:left">No</button>

function goToDiv(divNo) {
  var sel = document.getElementById('main').getElementsByTagName('div');
  for (var i=0; i<sel.length; i++) { sel[i].style.display = 'none'; }
  if (divNo > sel.length-1) { divNo = 0; }
  else { if (divNo < 0) { divNo = sel.length-1; } }
  sel[divNo].style.display = 'block';
}