2009-12-19 29 views
4
for(var i=0;i<tr.length;i++){ 
    var td = tr[i].getElementsByTagName("td"); 
    if(td[2].innerHTML==time && td[3].innerHTML==cls){ 
     td[0].setAttribute("id","focus"); 
     tr[i].style.backgroundColor="green"; 
     var foc = document.getElementById("focus"); 
     foc.focus(); 
     cnt++; 
    } 
    else{ 
     tr[i].style.backgroundColor="transparent"; 
    } 

} 
+2

我不相信你可以把重點放在TD或TR上。我認爲你只能將焦點設置到某種輸入框......可能是一個鏈接。 – 2009-12-19 06:32:10

+1

你的問題到底是什麼?你想用jQuery來重寫這個嗎? – czarchaic 2009-12-19 06:33:20

+0

您不關注tr或td,您只能關注輸入字段。您還將兩個對象設置爲相同的ID:您新創建的輸入元素*和*一個td。一個id *必須*在任何給定頁面上都是唯一的。我建議使用Firefox + Firebug並在'foc.focus();'處設置一個斷點並做一些變量檢查。 – 2009-12-19 06:35:42

回答

1

看樣子你有一個輸入字段id爲「焦點」一個TD內,所以我假設你希望把重點放在輸入本身。使用jQuery,你可以這樣做:

​​

這將導致焦點被帶到特定的元素,一旦被調用。我看到你也嘗試將特定TD的ID設置爲「專注」;您應該每頁只使用一次唯一的ID值。如果您覺得需要使用單個值來表示多個元素,請考慮使用classnames,因爲頁面上可以存在任意數量的元素。

2

由於問題是關於改變對TD或TR的關注,那麼答案就是你不能關注這樣的HTML標籤;如果這是一個輸入元素(textarea,textfield,複選框,收音機)或鏈接,則可以更改當前聚焦的元素,這些元素在您單擊關鍵點選項卡時以特定方式突出顯示。
如Jonathan Sampson所建議的,如果你真的想專注於輸入領域,那麼他給出的答案是正確的。

在你的代碼確實試圖獲得焦點在標籤上TD,那麼問題的答案是否定的。

8

這是一年爲時已晚,但你CAN集中到一個TD元素。只要給它一個tabindex屬性,然後做一個焦點()。

這適用於DIV元素和幾乎所有其他元素。

我試過這個在Firefox 3.5以上。

相關問題