Javascript 如何检索元素
这就是我想知道的。我有一个表,它的行数取决于微调器中的行数。这是可行的,例如,如果我在微调器中输入25,它将显示25行,如果我在微调器中输入7,它将显示7行 所以我的问题是: 假设一个表中有许多行。我有一个文本区,用户在其中输入问题,然后提交问题,问题应插入并显示在表格的第一行“问题”列下,文本区变为空白,用户输入第二个问题,如果用户提交,则问题将显示在第二行,第三个问题进入第三排,第四个问题进入第四排等 问题是每次我向表中提交问题时,都会创建一个新行。因此,如果我在表格中有20个空行,因为我在微调器中声明我想要20个问题,那么每次我提交问题时,它都会添加一个新行,因此从文本区域提交20个问题意味着表格将包含20个空行和20个带问题的行。我猜是因为这个,例如:Javascript 如何检索元素,javascript,html,function,html-table,Javascript,Html,Function,Html Table,这就是我想知道的。我有一个表,它的行数取决于微调器中的行数。这是可行的,例如,如果我在微调器中输入25,它将显示25行,如果我在微调器中输入7,它将显示7行 所以我的问题是: 假设一个表中有许多行。我有一个文本区,用户在其中输入问题,然后提交问题,问题应插入并显示在表格的第一行“问题”列下,文本区变为空白,用户输入第二个问题,如果用户提交,则问题将显示在第二行,第三个问题进入第三排,第四个问题进入第四排等 问题是每次我向表中提交问题时,都会创建一个新行。因此,如果我在表格中有20个空行,因为我在
var enumeratorCell = document.createElement("td");
所以我想知道的是,除了创建一个元素来创建一个新行外,我如何检索一个元素,以便它从上到下提交现有行中的问题,而不是每次提交问题时都创建一个新行
Below is my code:
function insertQuestion() {
var table = document.getElementById("qandatbl");
var tableBody = table.tBodies[0];
var textarea = document.getElementById("questionTxt");
var row = document.createElement("tr");
tableBody.appendChild(row);
var enumeratorCell = document.createElement("td");
enumeratorCell.className = "qid";
row.appendChild(enumeratorCell);
var questionCell = document.createElement("td");
questionCell.className = "question";
row.appendChild(questionCell);
var questionText = textarea.value;
var questionContent = document.createTextNode(questionText);
questionCell.appendChild(questionContent);
}
HTML:
//将在其中插入问题的表
//这将从微调器获取问题的数量
//文本区域和提交按钮,用于提交问题
我想你可能想做这样的事情:
var table = document.getElementById(tableId);
var rows = table.getElementsByTagName("tr");
for(i = 0; i < rows.length; i++){
//manipulate rows
}
var table=document.getElementById(tableId);
var rows=table.getElementsByTagName(“tr”);
对于(i=0;i
给定现有表格:
<table id="myTable">
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
</table>
马尔科姆,请你重新措辞一下你的问题好吗。很难理解您想要实现什么。HTML中的一点点PHP代码与这个问题有什么关系?“每次我将数据提交到一个表中,它都会创建一个新行”-当你说“提交”时,你的意思是你在页面上有一个现有的HTML表,你想用一些新内容或其他内容替换一个或多个TD元素的内容吗?也许你可以显示你想要的HTML的前后状态?我想说的是有一个空白表,下表是一个文本区和一个提交按钮,老师输入一个问题,当老师提交问题时,它进入表中的第一行,因为这是第一个问题,然后老师重复,第二个问题进入第二行,依此类推。但不是将数据插入表中已有的行中,而是创建新行并将数据插入新行。你能帮我一个大忙吗?你能为我现有的表编码吗?这是因为我查看了你现有的表和代码,我完全搞糊涂了。我不知道什么是“新价值”或什么是r、j和c。如果你能为我这样做,我会非常感激。我的答案中的代码就是一个例子。“newvalue”只是一个字符串的示例,可以将它分配给td元素的内部html——由您来替换自己有意义的值。r、 j和c都只是我声明的变量。我使用r在外循环中引用当前行,使用c在内循环中引用当前单元格(td元素)。您需要非常仔细地阅读我的示例(和/或谷歌一些JavaScript教程),直到您理解它。我的示例很简短,所以在您理解它之前,您不会理解您自己的代码。。。
<table id="myTable">
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
</table>
// get reference to the table
var t = document.getElementById("myTable"),
r,
c,
i, j;
// loop through the rows
for (i=0; i<t.rows.length; i++) {
// get reference to current row
r = t.rows[i]; //
// loop through tds of current row
for (j=0; j<r.cells.length; j++) {
// get reference to current cell
c = r.cells[j]; // equivalent to t.rows[i].cells[j]
// display content of cell
alert(c.innerHTML);
// change content of cell
c.innerHTML = "New value " + i + j;
}
}
var particularTD = t.rows[2].cells[1]; // where t was declared above
alert(particularTD.innerHTML);