gpt4 book ai didi

javascript - getElementById 在歌剧 12.15 中不起作用

转载 作者:行者123 更新时间:2023-11-30 13:04:04 26 4
gpt4 key购买 nike

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

     HTML:
<!Doctype>
<html>
<head>
<script>
(function (tag,fp,n) {
var d = document;
a = d.createElement(tag), m = d.getElementsByTagName(tag)[0];
a.async = 1;
a.src = fp;
m.parentNode.insertBefore(a, m)
})('script', 'cs.js', 'cs');
</script>

</head>
<body>

<div id="id">click me</div>
</body>
</html>


javascript(cs.js):

;(function(w, d) {
var util = {
getElements : function(selector) {

var result = [];
var hashIndex = selector.indexOf("#");
var dotIndex = selector.indexOf(".");

if(hashIndex > -1){
selector = selector.substring(hashIndex+1);
var domElem = d.getElementById(selector);
console.log(domElem);
if(domElem !=null){
result.push(domElem);
}
}
else if(dotIndex > -1){
selector = selector.substring(dotIndex+1);
var domElem = d.getElementsByClassName(selector);
if(domElem !=null){
result = domElem;
}

}else{
var domElem = d.getElementsByTagName(selector);
if(domElem !=null){
result = domElem;
}
}

return result;
}
};

console.log(util.getElements("#id"));


})(window, document);

它在 chrome、firefox 中工作正常,但在 opera 中它给出了 null .

Browser Info: Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 版本/12.15

这个问题有什么解决方法吗?

最佳答案

你的 <script>元素出现在 <div> 之前您要选择的元素。

使用 async不保证 DOM Ready 事件会在脚本运行之前触发。

移动脚本,使其出现在文档的后面,或将其绑定(bind)到事件处理程序。

关于javascript - getElementById 在歌剧 12.15 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16352590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com