javascript實(shí)現(xiàn)切換td中的值
之前面試前端時,遇到一道面試題,當(dāng)時沒有思緒所以沒答出來,今天整理了一下和大家一起分享下:
原題是:使用對象方法創(chuàng)建一個2x2的表格(table),要求第二行第二列單元格中擁有一個按鈕,當(dāng)點(diǎn)擊此按鈕時,第一行第一列的值與第二行第一列的值互換,見下圖

創(chuàng)建表格

點(diǎn)擊效果
本人愚鈍,如果您有更好的方法不妨告訴在下,本人琢磨了半天終于有了些結(jié)果:
1.創(chuàng)建表格的對象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
table td{text-align: center;}
</style>
</head>
<body>
<h2>使用對象創(chuàng)建表格</h2>
<script>
var table={
value1:"value1",
value2:"value2",
row:2,
cell:2,
create:function(){
//創(chuàng)建表格
var table=document.createElement("table");
table.border=1;
table.width="500";
//創(chuàng)建按鈕
var button=document.createElement("button");
button.innerHTML="切換";
button.name="qiehuan";
button.setAttribute("onclick","qiehuan()");
//創(chuàng)建行
for(var i=0;i<this.row;i++){
table.insertRow();
}
//創(chuàng)建列
for(var i=0;i<this.cell;i++){
table.rows[i].insertCell();
table.rows[i].insertCell();
}
//將表格添加到body
document.body.appendChild(table);
var table=document.getElementsByTagName("table")[0];
var row1=table.rows[0];
var row2=table.rows[1];
table.rows[1].cells[1].appendChild(button);
var a=row1.cells[0].innerHTML=this.value1;
var b=row2.cells[0].innerHTML=this.value2;
}
}
table.create();
</script>
</body>
</html>
創(chuàng)建表格方法實(shí)現(xiàn)的效果為:

點(diǎn)擊切換代碼:
function qiehuan(){
//獲取table
var table=document.getElementsByTagName("table")[0];
//獲取tr
var row1=table.rows[0];
var row2=table.rows[1];
//交換內(nèi)容
//創(chuàng)建新元素來存儲數(shù)據(jù)
var a=row1.cells[0].innerHTML;
var b=row2.cells[0].innerHTML;
row1.cells[0].innerHTML=b;
row2.cells[0].innerHTML=a;
}
點(diǎn)擊切換按鈕效果為:

拓展延伸:
1.我想實(shí)現(xiàn)點(diǎn)擊id/name/sex來更換排序:

原始

效果
code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table border="1" width="500">
<th colspan="3">點(diǎn)擊替換內(nèi)容</th>
<tr>
<td id="id">id</td>
<td id="name">name</td>
<td><span id="sex">sex</span></td>
</tr>
<tr>
<td>1</td>
<td>a</td>
<td>男</td>
</tr>
<tr>
<td>2</td>
<td>b</td>
<td>女</td>
</tr>
</table>
<script>
//綁定效果---ie下失效
document.getElementById('id').addEventListener('click', f_switch, false);
document.getElementById('name').addEventListener('click', f_switch, false);
document.getElementById('sex').addEventListener('click', f_switch, false);
function f_switch(){
//獲取table
var table=document.getElementsByTagName("table")[0];
//獲取行元素
var row1=table.rows[2];
var row2=table.rows[3];
//方法一
//創(chuàng)建新元素來存儲數(shù)據(jù)
var newrow=document.createElement("tr");
var newhtml=newrow.innerHTML=row2.innerHTML;
var newrow2=document.createElement("tr");
var newhtml2=newrow2.innerHTML=row1.innerHTML;
//替換
row1.innerHTML=newhtml;
row2.innerHTML=newhtml2;
//方法二
//不明白....下面一句就能實(shí)現(xiàn)
//table.appendChild(row1);
}
</script>
<br>
</body>
</html>
- javascript實(shí)現(xiàn)Table間隔色以及選擇高亮(和動態(tài)切換數(shù)據(jù))的方法
- JavaScript實(shí)現(xiàn)點(diǎn)擊文字切換登錄窗口的方法
- JavaScript實(shí)現(xiàn)多個重疊層點(diǎn)擊切換效果的方法
- javascript實(shí)現(xiàn)圖片自動和可控的輪播切換特效
- javascript實(shí)現(xiàn)ecshop搜索框鍵盤上下鍵切換控制
- javascript實(shí)現(xiàn)按回車鍵切換焦點(diǎn)
- 原生javascript實(shí)現(xiàn)圖片按鈕切換
- 原生javascript實(shí)現(xiàn)Tab選項卡切換功能
- javascript回車完美實(shí)現(xiàn)tab切換功能
- js(JavaScript)實(shí)現(xiàn)TAB標(biāo)簽切換效果的簡單實(shí)例
- javascript實(shí)現(xiàn)的多個層切換效果通用函數(shù)實(shí)例
相關(guān)文章
JS實(shí)現(xiàn)的input選擇圖片本地預(yù)覽功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)的input選擇圖片本地預(yù)覽功能,涉及javascript針對頁面元素屬性動態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-08-08
javascript實(shí)現(xiàn)圖片延遲加載方法匯總(三種方法)
看到一些大型網(wǎng)站,頁面如果有很多圖片的時候,當(dāng)你滾動到相應(yīng)的行時,當(dāng)前行的圖片才即時加載的,這樣子的話頁面在打開只加可視區(qū)域的圖片,而其它隱藏的圖片則不加載,一定程序上加快了頁面加載的速度,跟著小編一起學(xué)習(xí)javascript實(shí)現(xiàn)圖片延遲加載吧2015-08-08
JS實(shí)現(xiàn)頁面鼠標(biāo)點(diǎn)擊出現(xiàn)圖片特效
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)頁面鼠標(biāo)點(diǎn)擊出現(xiàn)圖片特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-08-08
JavaScript學(xué)習(xí)筆記整理之引用類型
引用類型是JavaScript中很重要的內(nèi)容,通過本文給大家介紹JavaScript學(xué)習(xí)筆記整理之引用類型,對js引用類型相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2016-01-01
Bootstrap CSS組件之按鈕組(btn-group)
這篇文章主要為大家詳細(xì)介紹了Bootstrap CSS組件之按鈕組(btn-group),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
基于js Canvas實(shí)現(xiàn)二次貝塞爾曲線
這篇文章主要為大家詳細(xì)介紹了基于js Canvas實(shí)現(xiàn)二次貝塞爾曲線,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12

