标记错误:document.getElementById(...) 为空或不是对象

亚瑟·萨默

我正在编写用于排序框的脚本。这是我的问题。在代码中:

Size_XS     = document.getElementById('Size_XS'+i).value*1;

似乎工作没有任何问题。

而这个:

document.getElementById('Size_XS'+i).value = Size_XS;

会给我错误信息: document.getElementById(...) is null or not an object。如果我改为:

document.getElementById('Size_XS1').value = Size_XS;

一切正常,但后来我无法循环文件,为什么它与上面的 i 一起工作?

我的脚本如下:

function calcbox(){
var count       = document.getElementById('count').value*1;

count           = count+1;

var box_num     = 0;

var header      = "<table style='border:#000 1px solid; background-color:#fff;'><tr><td width='25'><b>Box</b></td><td width='200'><b>Item name</b></td><td width='100'><b>Sizes</b></td><td width='250'><b>Pcs</b></td></tr>";

var output      = header+document.getElementById('output').innerHTML;
var total_qty;
var box_qty;
var item_name;

var Size_XS=0;
var Size_S=0;
var Size_M=0;
var Size_L=0;

/*for(var i=1;i<count;i++){*/


var i=1;
total_qty   = document.getElementById('total_qty'+i).value*1;
box_qty     = document.getElementById('box_qty'+i).value*1;
item_name   = document.getElementById('item_name'+i).value;

Size_XS     = document.getElementById('Size_XS'+i).value*1;
Size_S      = document.getElementById('Size_S'+i).value*1;
Size_M      = document.getElementById('Size_M'+i).value*1;
Size_L      = document.getElementById('Size_L'+i).value*1;

//Packing whole boxes
if(Size_XS>=box_qty){
    var Box_count = parseInt(Size_XS/box_qty);

    for(var i=1;i<=Box_count;i++){
        box_num = box_num+1;
        output = output+"<tr><td>"+box_num+"</td><td>"+item_name+"</td><td>S</td><td>"+box_qty+"</td></tr>";    
    }
    Size_XS = Size_XS-(box_qty*Box_count);
    alert(Size_XS);
    document.getElementById('Size_XS'+i).value = Size_XS;   
}
if(Size_S>=box_qty){
    var Box_count = parseInt(Size_S/box_qty);

    for(var i=1;i<=Box_count;i++){
        box_num = box_num+1;
        output = output+"<tr><td>"+box_num+"</td><td>"+item_name+"</td><td>S</td><td>"+box_qty+"</td></tr>";        
    }   
    Size_S = Size_S-(box_qty*Box_count);
    document.getElementById('Size_S'+i).value = Size_S; 
}
if(Size_M>=box_qty){
    var Box_count = parseInt(Size_M/box_qty);

    for(var i=1;i<=Box_count;i++){
        box_num = box_num+1;
        output = output+"<tr><td>"+box_num+"</td><td>"+item_name+"</td><td>M</td><td>"+box_qty+"</td></tr>";
    }
    Size_M = Size_M-(box_qty*Box_count);
    document.getElementById('Size_M'+i).value = Size_M; 
}   
if(Size_L>=box_qty){
    var Box_count = parseInt(Size_L/box_qty);

    for(var i=1;i<=Box_count;i++){
        box_num = box_num+1;
        output = output+"<tr><td>"+box_num+"</td><td>"+item_name+"      </td><td>L</td><td>"+box_qty+"</td></tr>";
    }       
        Size_L = Size_L-(box_qty*Box_count);
        document.getElementById('Size_L'+i).value = Size_L; 
    }
document.getElementById("output").innerHTML = output+"</table>";
document.getElementById("qty_boxes").value = box_num;

show('Volume_weight');
}

我在 HTML 代码中从这里获取我的值:

<table>
<tr>
<td width="10">1</td>
<td width="120"><input id="item_name1" type="text" style="width:100px;" /></td>
<td width="80"><input id="box_qty1" type="text" style="width:30px;" /></td>
<td width="40"><input id="Size_XS1" type="text" style="width:30px;" onchange="totcalc(1);" /></td>
<td width="40"><input id="Size_S1" type="text" style="width:30px;" onchange="totcalc(1);" /></td>
<td width="40"><input id="Size_M1" type="text" style="width:30px;" onchange="totcalc(1);" /></td>
<td width="40"><input id="Size_L1" type="text" style="width:30px;" onchange="totcalc(1);" /></td>
<td width="60"><input id="total_qty1" type="text" style="width:50px;" /></td>
</tr>
</table>
拖拉机

i在代码中使用了两个不同的东西。首先作为输入元素 id 值的后缀,其次作为框的循环计数器。i各种循环完成后After不再等于 1,通过后缀 id 查找 HTML 元素失败:

document.getElementById('Size_XS'+i).value = Size_XS;

发生在

for(var i=1;i<=Box_count;i++){ // ...

如果这是问题,请随意删除问题:D

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

document.getElementById() 为空

说明Maven JavaDoc插件为空<p>标记错误

我找不到错误?TypeError:document.getElementById(...)为null

未为“ document.getElementById()”定义文档错误

Selenium-Java-geckodriver:由于“ document.getElementById(...)为空”,测试执行因JavaScript错误而暂停

document.getElementById()。value不是最新的

document.getElementById(“ <%= errorIcon.ClientID%>”); 给空

空的href getElementById出现Javascript错误

给TypeError:'undefined'的document.getElementByID(“ test”)。innerHTML不是函数(评估'document.getElementByID(“ test”)')

'document.Form1.imgLoading'为空或不是对象

为什么Flow仍然抱怨document.getElementById为空值

Javascript:TypeError:document.getElementById(...)为空动态创建的<div> MVC4

非常简单的脚本在 onChange 事件上失败。未捕获的类型错误:document.getElementbyId 不是函数

HTML2Canvas-document.getElementById(...)。toDataURL不是函数

未捕获的TypeError:document.getElementById不是函数

如何从document.getElementByID('something')。value获取空值

TypeError:document.getElementById(...)为null不会停止出现

document.getElementById()。value如果为0,则将秒数截断

如何将 document.getElementById(...) is null 设置为 true

在异常TypeError上暂停:document.getElementById(...)为null

TypeError:document.getElementById(...)在javascript中为null

以 php 变量为 id 回显 document.getElementById()

如何访问从jQuery中的document.getelementbyId()获得的JavaScript对象?

jQuery引发错误,即iframe.getElementById不是函数

document.getElementById与jQuery $()

Javascript document.getElementById

类而不是getElementById

.js 文件上的 Document.getElementById 错误

来自节点对象的 GetElementById