Javascript getElementById在opera 12.15中不起作用

Javascript getElementById在opera 12.15中不起作用,javascript,dom,element,opera,getelementbyid,Javascript,Dom,Element,Opera,Getelementbyid,在我的应用程序中,我在客户端使用javascript,我需要根据id、类和标记名获取元素,我使用以下代码使用id获取元素 它在chrome和firefox中正常工作,但在opera中为空 浏览器信息:Opera/9.80 X11;Linux x86_64 Presto/2.12.388版本/12.15 是否有解决此问题的方法?您可以尝试通过“名称”属性为DomeElement命名,并执行以下操作: var domElement = document.getElementsByName("elem

在我的应用程序中,我在客户端使用javascript,我需要根据id、类和标记名获取元素,我使用以下代码使用id获取元素

它在chrome和firefox中正常工作,但在opera中为空

浏览器信息:Opera/9.80 X11;Linux x86_64 Presto/2.12.388版本/12.15


是否有解决此问题的方法?

您可以尝试通过“名称”属性为DomeElement命名,并执行以下操作:

var domElement = document.getElementsByName("element_name")[0];
console.log(domElement);

我希望是这样的。

< P>我没有歌剧的版本来测试你的说法,但你可以考虑作为备选方案。

HTML

@bergi的更新

这里是一个环境被破坏的例子,这可能是设计中故意的,谁知道呢,无论如何OP无法控制所述环境

document.getElementById = function () {
    return null;
};

var domElement = document.getElementById("id");
console.log(domElement);

domElement = document.querySelector("#id");
console.log(domElement);

哦,天哪,getElementById不起作用,但querySelector起作用

我并不反对这个问题含糊不清,但仍然…

您的元素出现在您试图选择的元素之前

使用async不能保证在脚本运行之前触发DOM就绪事件


移动脚本,使其稍后出现在文档中,或将其绑定到事件处理程序。

您能分享一个问题的实例吗?同时,在Opera 12.15 for W7上运行得非常好。尝试构建一个完整的简化测试用例。我们无法从那个小家伙身上看出什么是错的。将id的值设为id表明,即使snippit是人为设计的,也可能不会反映出不起作用的代码。Fabriciomatté的代码在Opera 12.15 for OS X上也能正常工作。@user2281294:你认为这在内部会起什么作用?jQuery绝不比getElementById@Bergi,我有一个疑问,$.classname和document.getelementsByClassNameclassname之间有什么区别吗?请不要回答这样模糊的问题。QueEnter选择器不比GETelEnMyBID更好,有一个特定的情况,但是你必须提到,我并没有说更可取,但是作为一个替代选择,如果GETelEnMyByID不工作,这将是一个特殊的情况。但是请告诉我你在想什么?不。如果文档。GETelEnMyBID不返回空,QueRealStudio也将不工作。考虑用户环境可能以某种方式被破坏,并且他无法控制这一点。查看我的更新您给了我很少或没有什么可处理的,不,就像OP一样,但是您的全面声明实际上更糟,我认为,因为如果document.getElementById不工作,返回null,querySelector也将不工作,这被证明是不正确的。使用替代品有一些优点,因为它可以用于诊断。请不要回答这样模糊的问题。getElementsByName绝不比getElementById更可取
<div id="id"></div>
var domElement = document.querySelector("#id");
console.log(domElement);
document.getElementById = function () {
    return null;
};

var domElement = document.getElementById("id");
console.log(domElement);

domElement = document.querySelector("#id");
console.log(domElement);