2017-09-05 64 views
0

這是我擁有的示例,現在我想要的是獲取信息(如果該行已選中或未選中)。該信息應保存爲一個布爾變量,它的名字是一樣的突出顯示行的第一列文本如何使用onclick將文本內容添加到單元格的變量

window.onload = highlight(); 
 

 
function highlight(){ 
 
\t var table = document.getElementById('myTab1'); 
 
\t \t for (var i=0;i < table.rows.length;i++){ 
 
\t \t \t table.rows[i].onclick = function() { 
 
\t \t \t \t var flag = false; 
 
\t \t \t \t if(this.className == 'check-tr'){ 
 
\t \t \t \t \t this.className = 'check-tr-checked'; 
 
\t \t \t \t \t flag = true; 
 
\t \t \t \t } 
 
\t \t \t \t if(this.className == 'check-tr-checked' && flag == false){ 
 
\t \t \t \t \t this.className = 'check-tr'; 
 
\t \t \t \t } \t \t 
 
\t \t \t } 
 
\t } 
 
}
.check-td{ 
 
\t background-color: #FFFFFF; 
 
\t padding: 8px; 
 
\t border: 1px solid; 
 
\t min-width:100px; 
 
} 
 

 
.check-tr .check-td{ 
 
\t background-color: #ffffff; 
 
\t padding: 8px; 
 
\t border: 1px solid; 
 
\t min-width:100px; 
 
} 
 

 
.check-tr:hover .check-td{ 
 
\t background: #ddd; \t 
 
} 
 

 
.check-tr-checked .check-td{ 
 
\t background-color: #ababad; 
 
\t padding: 8px; 
 
\t border: 1px solid; 
 
\t min-width:100px; 
 
} 
 

 
.check-tr-checked:hover .check-td{ 
 
\t background: #ddd; 
 
}
<table id="myTab1" style="width:90%"> 
 
\t \t <thead> 
 
\t \t \t <td class="report-th" colspan="2"> 
 
\t \t \t \t Reports 
 
\t \t \t </td> 
 
\t \t </thead> 
 
\t \t 
 
\t \t <tbody> 
 
\t \t \t \t <tr class="check-tr"> 
 
\t \t \t \t \t \t <td class="check-td"> 
 
\t \t \t \t \t \t \t \t a 
 
\t \t \t \t \t \t </td> 
 
      <td class="check-td"> 
 
       1 
 
      </td> 
 
     </tr> 
 
     <tr class="check-tr"> 
 
\t \t \t \t \t \t <td class="check-td"> 
 
\t \t \t \t \t \t \t \t b 
 
\t \t \t \t \t \t </td> 
 
      <td class="check-td"> 
 
       2 
 
      </td> 
 
     </tr> 
 
     <tr class="check-tr"> 
 
\t \t \t \t \t \t <td class="check-td"> 
 
\t \t \t \t \t \t \t \t c 
 
\t \t \t \t \t \t </td> 
 
      <td class="check-td"> 
 
       3 
 
      </td> 
 
     </tr> 
 
     <tr class="check-tr"> 
 
\t \t \t \t \t \t <td class="check-td"> 
 
\t \t \t \t \t \t \t \t d 
 
\t \t \t \t \t \t </td> 
 
      <td class="check-td"> 
 
       4 
 
      </td> 
 
     </tr> 
 
    </tbody> 
 
</table>

這是我的HTML項目的一部分,它使用JavaScript來檢查和在表中取消選中行(改變其類)

window.onload = highlight(); 

function highlight{ 
    var table = document.getElementById('myTab1'); 
     for (var i=0;i < table.rows.length;i++){ 
      table.rows[i].onclick = function() { 
       alert(this.content); 
       var flag = false; 
       if(this.className == 'check-tr'){ 
        this.className = 'check-tr-checked'; 
        flag = true; 
       } 
       if(this.className == 'check-tr-checked' && flag == false){ 
        this.className = 'check-tr'; 
       }  
      } 
     } 
} 

我想存儲從該行的第一個單元格是被點擊一個變量的文本。有人可以幫助我嗎?

+1

'的window.onload = highlight' – haim770

+1

@ K.Zdzioch:如果「反正工作」爲你現在刪除的評論說,那麼你有你'在正確的地方script'標籤(好! )並且不需要'window.onload ='部分,只需調用'highlight();' –

+0

這個問題與自身衝突。你想將表中的所有文本存儲到變量中嗎?或僅點擊行上的文字?或者點擊單元格?標題中顯示「單元格」,文本顯示「表格」,我說「行」... – Teemu

回答

1
window.onload = highlight(); 

function highlight(){ //added paranthesis here 
    var table = document.getElementById('myTab1'); 
     for (var i=0;i < table.rows.length;i++){ 
      table.rows[i].onclick = function() { 
       alert(this.innerText); 
       var flag = false; 
       if(this.className == 'check-tr'){ 
        this.className = 'check-tr-checked'; 
        flag = true; 
       } 
       if(this.className == 'check-tr-checked' && flag == false){ 
        this.className = 'check-tr'; 
       }  
      } 
     } 
} 
+0

非常感謝。不是一個很難的問題,但正如我所說我是新手,我無法找到這個簡單的解決方案。應該這樣做 –

相關問題