2016-11-21 74 views
0

我有這樣如何更改ul包裝在不同div上的tab順序?

<div class="first_div"> 
    <ul class="menu"> 
    ... 
    </ul> 
</div> 
<div class="second_div"> 
    <ul class="menu"> 
    ... 
    </ul> 
</div> 

HTML結構默認情況下,標籤先轉到first div menu,然後second div menu

但我想改變它的順序。我希望標籤應該先到第二個div菜單,然後是第一個div菜單。

我已經給tabindex="1"到第二個div和tabindex="2"的第一個div,但它不工作嘗試。

注意:我無法更改html結構。

+0

「選項卡首先進入」 不會的標籤意味着你按下tab鍵?或者這是某種jQuery選項卡? – Pete

+0

我不確定我是否理解這個問題。這是一個jsfiddle,近似我認爲你正在嘗試做的事情。據我所知,它正在按照你想要的那樣工作。你能用這樣的事情來更新你的問題嗎?描述發生了什麼事情與預期的事情? https://jsfiddle.net/ccuo99yn/ – pulekies

+0

是的,我的意思是標籤鍵 – Ahmad

回答

0

tabindex似乎是伎倆。即使在動態添加和重新設置tabindex正在工作。

下面是摘錄:

var cnt = 2; 
 

 
function btnAdd_Clicked() { 
 
    cnt++; 
 

 
    document.body.innerHTML += '<div class="div_' + cnt + '"><ul class="menu" tabindex="' + cnt + '">...' + (cnt) + '...</ul></div'; 
 
} 
 

 
function btnReoder_Clicked() { 
 
    var uls = document.querySelectorAll("body>div>ul"); 
 
    for (var i = uls.length - 1; i >= 0; i--) { 
 
    uls[i].setAttribute('tabindex', (cnt - i)); 
 
    } 
 
}
body>div { 
 
    border: 1px solid lightgray; 
 
    padding: 5px; 
 
} 
 
body>div>ul { 
 
    border: 1px solid lightblue; 
 
    margin: 0; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 

 
</head> 
 

 
<body> 
 
    <p> 
 
    <button onclick="btnAdd_Clicked()">Add</button> 
 
    </p> 
 
    <p> 
 
    <button onclick="btnReoder_Clicked()">Reverse tab</button> 
 
    </p> 
 
    <div class="first_div"> 
 
    <ul class="menu" tabindex="2"> 
 
     ....First.. 
 
    </ul> 
 
    </div> 
 
    <div class="second_div"> 
 
    <ul class="menu" tabindex="1"> 
 
     ...Second... 
 
    </ul> 
 
    </div> 
 
</body> 
 

 
</html>

當你說