关注下一个可用的 div

Focus on next available div

假设我有这个:

<div id="div 2">
<a href="http://www.sitename.com">Link 2</a>
</div

</br></br></br></br></br></br></br></br></br>
<div id="div 1">
<a href="http://www.sitename.com/example">Link 1</a>
</div>

然后我使用#url来到这个页面例如example.com/#div 1

如何设置焦点使其转到相应的第一个 div 而不必将焦点分配给 div。

例如,如果我在 1 个站点上有 x50 divs 并且用户使用带有 # 参数的各种 urls 我怎么简单地说 focus on next div available

您可以使用 tabindex 来做到这一点,例如

<div id="div 2" tabindex='1'>
<a href="http://www.sitename.com">Link 2</a>
</div

</br></br></br></br></br></br></br></br></br>
<div id="div 1" tabindex='2'>
<a href="http://www.sitename.com/example">Link 1</a>
</div>

我不得不承认我去写了一个我认为你想要的答案,它是滚动的(因为你提到了#'s)以防它对你或任何人有用,就在这里。

<input type='button' value='next' onclick='scrollToNextDiv()' style='position:fixed; right:50px;'/>

    </br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br>
    <div id="div-2" tabindex='1'>
    <a href="http://www.sitename.com">Link 2</a>
    </div

    </br></br></br></br></br></br></br></br></br>
    </br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br>
    <div id="div-1" tabindex='2'>
    <a href="http://www.sitename.com/example">Link 1</a>
    </div>
    </br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br>

<script>
function scrollToNextDiv(){
    //look for #div-X in the URL
    var currentDivId = window.location.hash;
    if(currentDivId.length>0){
        currentDivId = currentDivId.substring(1);//remove leading #
    }

    var divs = document.getElementsByTagName('div');
    if(divs.length===0) {
        return;//nothing to do
    }

    var chosenDiv = divs[0];

    if(currentDivId.length>0){
        //find the current DIV as spec'd by the url #
        for(var i=0; i<divs.length-1; i++){

            if(divs[i].id===currentDivId){
                chosenDiv = divs[i+1];
                break;
            }
            if(i===divs.length-1){
                //didn't find it, or ran out of divs, so go back to top
                chosenDiv = divs[0];
            }
        }

    } 

    chosenDiv.scrollIntoView();
    window.location.hash = '#'+chosenDiv.id;
}
</script>