ฉันจำได้ว่าฉันพบปัญหาดังกล่าวในระหว่างการสัมภาษณ์: มีแบบฟอร์ม จากนั้นจะมีกล่องอินพุต 4 ช่องและปุ่มรวม มีลักษณะดังนี้ จากแถวไหนไปแถวไหน และจากคอลัมน์ไหนไปคอลัมน์ไหน . จากนั้นคลิกปุ่มเพื่อรวม ตอนที่ฉันออกจากโรงเรียน ฉันรู้เรื่อง JS เพียงเล็กน้อยเท่านั้น แต่ทำไม่ได้เลย! ตอนนี้ฉันคิดดูแล้ว คำถามนี้จะทดสอบว่าทักษะพื้นฐานนั้นแข็งแกร่งจริง ๆ หรือไม่! หากคุณสนใจคุณสามารถทำได้ด้วยตัวเองและทดสอบว่าสามารถทำได้หรือไม่ ภาพหน้าจอของคำถาม:
การแก้ไขปัญหานี้ดูเหมือนง่าย แต่ฉันยังใช้เวลานาน สิ่งสำคัญคือการใช้ js เพื่อดำเนินการ html ตอนนี้ฉันได้ดำเนินการเพิ่มแถว การลบแถว การเพิ่มคอลัมน์ และการลบคอลัมน์ อย่างไรก็ตาม การรวมเซลล์ไม่สามารถทำได้ทั้งหมด เนื่องจากตารางจะเกิดความยุ่งเหยิง ตอนนี้โพสต์คำถามนี้ เพื่อนร่วมงานที่สนใจสามารถศึกษาได้เมื่อมีเวลาและดูว่าพวกเขาจะทำได้หรือไม่! ปัญหาหลักคือการรวมเซลล์! คุณสามารถช่วยฉันหาปัญหาของการรวมเซลล์ได้
ส่วนหนึ่งของโค้ดที่ฉันนำไปใช้เอง:
ส่วน html เขียน
คัดลอกรหัสรหัสดังต่อไปนี้:
<body onLoad="init();">
<table id="table" align="center">
<tbody id="ใหม่"></tbody>
</ตาราง>
<div>
<ตาราง align="center">
<tr><td align="center"><input type="button" id="addRow" name="addRow" onClick="addRow();" value="เพิ่มแถว"/></td>
<td align="center"><input type="button" id="delRow" name="delRow" onClick="removeRow();" value="ลบแถว"/></td>
</tr>
<tr><td align="center"><input type="button" id="delCell" name="delCell" onClick="removeCell();" value="ลบคอลัมน์"/></td>
<td align="center"><input type="button" id="addCell" name="addCell" onClick=" addCell();" value="เพิ่มคอลัมน์"/></td>
</tr>
<tr><td align="center" colspan="2"><input type="button" id="addRows" name="addRows" onClick="addRow_withInsert();" value="เพิ่มแถว"/>< /td></tr>
</ตาราง>
</div>
<div>
<ตาราง align="center">
<tr><td>จากบรรทัด <input type="text" id="beginRow" name="beginRow" value=""/> ถึง <input type="text" name="endRow" id="endRow" ค่า =""/> แถว</td><td rowspan="2" id="test"><input type="button" name="hebing" id="hebing" value="ผสาน" onClick="rebulid();"/> </td></tr>
<tr><td>จากคอลัมน์ <input type="text" name="beginCol" id="beginCol" value=""/> ถึง <input type="text" name="endCol" id="endCol" ค่า =""/> คอลัมน์</td></tr>
</ตาราง>
</div>
</ร่างกาย>
สร้างตารางโดยใช้ appendChild เขียน
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น init(){
_table=document.getElementById ("ตาราง");
_table.border="1px";
_table.width="800px";
สำหรับ(var i=1;i<10;i++){
var row=document.createElement ("tr");
แถว.id=i;
สำหรับ(var j=1;j<6;j++){
เซลล์ var=document.createElement ("td");
เซลล์.id =i+"/"+j;
cell.appendChild(document.createTextNode ("th"+cell.id+"คอลัมน์"));
row.appendChild (เซลล์);
-
document.getElementById("newbody").appendChild (แถว);
-
-
หากต้องการเพิ่มแถว ให้เขียนโดยใช้วิธี appendChild
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชัน addRow(){
var length=document.getElementById("table").rows.length;
/*document.getElementById("ตัวใหม่").insertRow(ความยาว);
document.getElementById(ความยาว+1).setAttribute("id",ความยาว+2);*/
var tr=document.createElement("tr");
tr.id=ความยาว+1;
var td=document.createElement("td");
สำหรับ(i=1;i<4;i++){
td.id=tr.id+"/"+i;
td.appendChild(document.createTextNode("th"+td.id+"คอลัมน์"));
tr.ผนวกเด็ก(td);
-
document.getElementById("newbody").appendChild (tr);
-
อีกวิธีหนึ่งในการเพิ่มแถว insertRow เขียน
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น addRow_withInsert(){
varrow=document.getElementById("ตาราง").insertRow( document.getElementById("ตาราง").rows.length);
var rowCount =document.getElementById("table").rows.length;
var countCell=document.getElementById("table").rows.item(0).cells.length;
สำหรับ(var i=0;i<countCell;i++){
เซลล์ var=row.insertCell(i);
cell.innerHTML="ใหม่"+(rowCount)+"/"+(i+1)+"คอลัมน์";
cell.id=(จำนวนแถว)+"/"+(i+1);
-
-
หากต้องการลบแถวให้ใช้ DeleteRow(ดัชนีแถว) ที่เขียน
คัดลอกรหัสรหัสดังต่อไปนี้:
/*ลบแถวโดยใช้ DeleteRow(ดัชนีแถว)*/
ฟังก์ชั่น RemoveRow(){
/* var row=document.getElementById("2");
ดัชนี var=row.rowIndex;
การแจ้งเตือน(ดัชนี);*/
document.getElementById("newbody").deleteRow(document.getElementById(document.getElementById("table").rows.length).rowIndex);
-
หากต้องการเพิ่มคอลัมน์ ให้ใช้วิธี insertCell (ตำแหน่งคอลัมน์) เพื่อเขียน
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น addCell(){
/*document.getElementById("table").rows.item(0).cells.length
ใช้เพื่อรับจำนวนคอลัมน์ในตาราง
-
สำหรับ(var i=0;i<document.getElementById("table").rows.length;i++){
var cell=document.getElementById("ตาราง").rows[i].insertCell(2);
cell.innerHTML="คอลัมน์ "+(i+1)+"/"+3+";
-
-
หากต้องการลบคอลัมน์ ให้ใช้เมธอด DeleteCell (ตำแหน่งคอลัมน์) ในการเขียน
คัดลอกรหัสรหัสดังต่อไปนี้:
/*ลบคอลัมน์โดยใช้วิธี DeleteCell(ตำแหน่งคอลัมน์)*/
ฟังก์ชั่น RemoveCell(){
สำหรับ(var i=0;i<document.getElementById("table").rows.length;i++){
document.getElementById("ตาราง").rows[i].deleteCell(0);
-
-
เขียนการรวมเซลล์ (ไม่ได้ใช้งาน)
รหัสของฉันมีปัญหา สาเหตุหลักมาจากตารางจะเลอะเทอะ และไม่ได้รับการแก้ไข:
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่นสร้างใหม่ () {
var beginningRow=document.getElementById("beginRow").value;/*แถวเริ่มต้น*/
var endRow=document.getElementById("endRow").value;/*แถวสุดท้าย*/
var beginningCol=document.getElementById("beginCol").value;/*คอลัมน์เริ่มต้น*/
var endCol=document.getElementById("endCol").value;/*คอลัมน์ท้าย*/
var tempCol=beginRow+"/"+beginCol;/*ค้นหาคอลัมน์ที่มีแอตทริบิวต์ที่คุณต้องการเปลี่ยน*/
การแจ้งเตือน (tempCol);
var td=document.getElementById(tempCol);
/*ลบเซลล์ที่จะรวม*/
สำหรับ(var x=beginRow;x<=endRow;x++){
สำหรับ(var i=beginCol;i<=endCol;i++){
ถ้า(x==เริ่มต้นแถว){
document.getElementById("ตาราง").rows[x].deleteCell(i+1);
-
อื่น{
document.getElementById("ตาราง").rows[x].deleteCell(i);
-
-
-
td.rowSpan=(endRow-beginRow)+1;
-