Javascript 行元素,这些空白从何而来?
首先:我的问题是,通过DOM将字符串从一行插入表单的多个字段中,值出现时会有很多空格,包括开头和结尾 我想做的是: 在我双击的行中查找单元格的值,并将这些值放入表单的字段中 HTML相当于:Javascript 行元素,这些空白从何而来?,javascript,html,dom,Javascript,Html,Dom,首先:我的问题是,通过DOM将字符串从一行插入表单的多个字段中,值出现时会有很多空格,包括开头和结尾 我想做的是: 在我双击的行中查找单元格的值,并将这些值放入表单的字段中 HTML相当于: <form> <fieldset> <legend> Very Important </legend> <label for="input_representing_all_the_inputs"> <input
<form>
<fieldset>
<legend> Very Important </legend>
<label for="input_representing_all_the_inputs">
<input id="input_representing_all_the_inputs"></input>
</fieldset>
</form>
<table id="issue_table" class="sortable", border="1" >
<tr ondblclick="values_into_form(issue_table)">
<td>
a value
</td>
<td>
another one
<td>
</tr>
<tr ondblclick="values_into_form(issue_table)">
<td>
here's also another value
</td>
<td>
aaand one more.
</td>
</tr>
</table>
<table id="not_the_issue_table" class="sortable", border="1">
[...] blabla looks similar [...]
</table>
非常重要
价值
另一个
这里还有另一个值
啊,还有一个。
[…]布拉布拉看起来很像[…]
现在我得到了一个js函数,可以从表中查找值并将它们放入表单中
function values_into_form( id ) {
//find index of row with given id
for (i = 0; i<= document.getElementById("accl_content").rows.lenght; i++){
if ( document.getElementById("issue_table").rows[i].id == id) {
var idx = i;
break;
}
}
// now insert the values into the editor-form
document.getElementById("input_representing_all_the_inputs" =
document.getElementById("issue_table").rows[idx].cells[0];
// repeat the above for each input_field with the specific cell_idx.
}
}
函数值转换为形式(id){
//查找具有给定id的行的索引
对于(i=0;i将html更改为:
<table id="issue_table" class="sortable", border="1" >
<tr ondblclick="values_into_form(issue_table)">
<td>a value</td>
<td>another one<td>
</tr>
<tr ondblclick="values_into_form(issue_table)">
<td>here's also another value</td>
<td>aaand one more.</td>
</tr>
</table>
价值
另一个
这里还有另一个值
啊,还有一个。
空格是因为在html中有空格。当然,您可以使用javascript去除开头和结尾的空格。但如果您不想这样做,上述解决方案应该会起作用。将html和javascript分开是一种很好的做法
JavaScript:
var myTable = document.getElementById("myTable");
var myInput = document.getElementById("myInput");
var td = myTable.getElementsByTagName("td");
for(var i = 0; i < td.length; i += 1) {
td[i].addEventListener("dblclick", function() {
myInput.value = this.innerHTML;
});
}
var myTable=document.getElementById(“myTable”);
var myInput=document.getElementById(“myInput”);
var td=myTable.getElementsByTagName(“td”);
对于(变量i=0;i
请加一把小提琴,这样我们就可以看到issue@Sempie不知道为什么这个答案最初被否决了,这是正确的。下面的一个例子说明了为什么:不在一行中添加eventListener,而是在它的每个单元格中添加eventListener的好处是什么?一般来说是好的,我知道,但这也可以按行存档。我删除了第一句话。是的,y你可以通过在每一行中添加一个事件监听器来实现它。如果你有100行,你总是必须添加事件监听器。如果你忘记了一个……除了HTML之外的JavaScript,你只能用表的id访问表的每个单元格!你不必太在意HTML。