我的名字是Ashish Kumar。在我的项目中,我使用了具有相同ID的多个控件(文本框,标签,复选框)。这适用于但不是Mozilla。例如。
function jsContentPageLoad() {
var obj = eval('document.all.txtName');
alert('txt Lenght: ' + obj.length);
alert('txt1: ' + obj[0].value);
alert('txt2: ' + obj[1].value);
}
<input type="text" id = "txtName" name = "txtName" value ="txt1"/>
<input type="text" id = "txtName" name = "txtName" value ="txt2"/>
我不想使用“document.getElementbyName”或“document.getElementByClassName”,因为与 eval('相比需要更多时间document.all.txtName')和“document.getElementbyID”。
现在我不想做任何重大改变,使这个项目与mozilla兼容,因为这个项目非常大。并且替换document.all很容易,但是如果我将id设为独特的,那么这将是很大的改变我。因为这个项目已有10年历史,这个项目大约有350页。我已经使用document.all来创建对象数组。不只是单个对象。 请帮我。 提前谢谢。
答案 0 :(得分:0)
首先,您的ID不是唯一的 - 您需要修复它。
其次,document.all
是Microsoft的专有扩展,这就是它在Firefox中不起作用的原因。
最后,要回答您的问题,请将document.all
的实例替换为document.getElementById
,而不是:
<input type="text" id = "txtName1" name = "txtName" value ="txt1"/>
<input type="text" id = "txtName2" name = "txtName" value ="txt2"/>
document.getElementById("txtName1");
document.getElementById("txtName2");
事实上,您甚至可以在项目中进行正则表达式替换以替换document.all
的所有实例,这将花费时间。