我正在编写一个脚本,将一个元素附加到网页上的添加模式中。
问题是我的getElementsByClassName
方法在运行时返回空(已编辑),但在我检查页面之后会发生一些事情。
$('.my-trigerring-modal-button').click(function () {
//try to avoid retrieve before modal added
setTimeout(function() {
var element = document.getElementsByClassName('Modal-form');
if(element === undefined || element.length == 0){
//always return undefined on run
return;
}
}, 5000);
})
但是当我在检查页面后在浏览器控制台中运行下面的代码时,我检索了想要的元素
document.getElementsByClassName('Modal-form')
修改
这是我的代码 HTML:
<button type="submit" class="my-trigerring-modal-button" style="visibility: visible;"></button>
此HTML按钮存在,“模态形式”元素也由库脚本添加,我没有权力。
对于那些问我5秒就够了的人:是的! {5}之前正确显示'Modal-form'
元素。
如果我不确定,我就不会问你这个了!
我担心库脚本会停止我的脚本覆盖他的表单,但Chrome有足够的权利在检查后执行此操作
由于
答案 0 :(得分:0)
问题可能来自于元素可能尚未加载的事实。请改用onclick =“”;
<a onclick="stackOverflow()"></a>
我还单独使用原始javascript
function stackOverflow() {
//try to avoid retrieve before modal added
setTimeout(function() {
var element = document.getElementsByClassName('Modal-form');
if(element === undefined || element.length == 0){
//always return undefined on run
return;
}
}, 5000);
}
虽然我不知道你为什么使用5000毫秒,但似乎很长。