我使用javascript填写表单中的一些内容,但是当我使用变量来获取对象时,会发布错误"TypeError: mytitle is null"
这是我的代码:
var num=0;
function add(){
var tr1=document.getElementById('itable').insertRow(1);
var c0=tr1.insertCell(0);
var c1=tr1.insertCell(1);
var c2=tr1.insertCell(2);
var c3=tr1.insertCell(3);
var c4=tr1.insertCell(4);
c0.innerHTML="<input type='checkbox' name='ck'/>";
c1.innerHTML="<input type='text' style='width:150px;'id='news_title"+ num + "' name='news_title"+num+ "' value="+ document.getElementById('news_title').value+"></input>";
c1.className="titlelimit";
$(".titlelimit").wordLimit(10);
c2.innerHTML="<input type='text' style='width:200px;' id='news_content"+num+"' name='news_content"+num+"' value="+ document.getElementById('news_content').value+"></input>";
c2.className="detailindex";
$(".detailindex").wordLimit(50);
c3.innerHTML="<input type='text' readonly='readonly 'maxlength='4' style='width:70px;' id='news_type"+num+"' name='news_type"+num+"' value="+ document.getElementById('news_type').value+"></input>";
c4.innerHTML="<input type='button' value='删除' onclick='del(this)' />";
num=num+1;
$("#news_title").attr("value","");
$("#news_content").attr("value","");
$("#news_type").attr("value","");
}
window.onload = loadtable;
function loadtable() {
var newstitle = myform.mynewstitle.value
alert(newstitle)
var titlearray = newstitle.split(",");
for(i = 0;i<titlearray.length;i++){
alert(titlearray[i]);
add();
var mytitle = document.getElementById('news_title'+num);
mytitle.value = titlearray[i];
num = num +1;
}
}
答案 0 :(得分:1)
您正在使用num
- 'news_title"+ num
然后使用num=num+1;
然后尝试找到'news_title'+num
如果你创建了一个元素'news_title0'
,那么当你查找它时,你正在寻找一个标识为'news_title1'
的元素
从num=num+1;
函数中删除add
,因为它已在loadtable
函数的循环中正确存在。
答案 1 :(得分:1)
num具有全局范围,因此在add()结束时,它的值为1
当您处于for循环时,您使用错误的num来创建您的ID名称。
你必须使用i。
var mytitle = document.getElementById('news_title'+i);
并且这条指令是无用的,删除最后一个cicle:
num = num +1;
这样:
function loadtable() {
var newstitle = myform.mynewstitle.value
alert(newstitle)
var titlearray = newstitle.split(",");
for(i = 0;i<titlearray.length;i++){
alert(titlearray[i]);
add();
var mytitle = document.getElementById('news_title'+i);
mytitle.value = titlearray[i];
}
答案 2 :(得分:0)
错误在以下行中,
var mytitle = document.getElementById('news_title'+num);
mytitle
找不到任何元素,您可能想查看'news_title'+num
返回的内容。