JavaScriptでスクリプトを作成する際に奇妙なことが起こりました。理解するのが正しいかどうかは完全にはわかりません。 基本的には、もう1つボタンをクリックして、最初に2番目のボタンが表示されない場合は、ループを終了する必要があります。最初の呼び出し時にボタン要素が取得されない
var intervalID = window.setInterval(myfunc,1000);
function t(){
console.log('quit');
clearInterval(intervalID);
}
function myfunc(){
//first button
document.getElementsByClassName('hit')[0].click();
//try to retrieve the second one
var el = document.getElementsByClassName('hit_ok');
console.log(el.length);
//if it exists click it
if (el.length == 1){
el[0].click();
//otherwise exit
} else {
console.log('ready to quit');
window.setTimeout(t,50);
}
}
私の問題は、最初のインスタンスは、常に0を返すことである文 は、私も次のことをしようとした場合:
function myfunc(){
document.getElementsByClassName('hit')[0].click();
var el = document.getElementsByClassName('hit_ok');
console.log(el);
if (el != null){
el[0].click();
} else {
console.log('ready to quit');
window.setTimeout(t,50);
}
}
、実際にそれを返します。
[] - >長さ:0__proto__:HTMLCollection
VM3642:1未キャッチタイプエラー:未定義のプロパティ 'click'を読み取ることができません
初めてそれがボタンを取得傾けることを意味し[span.hit_ok]
:
の代わりに。 明らかに、最初のボタンが押されてから2番目のボタンがあります。
HTMLコード:
//first button
<div class="try">
<input type="hidden" id="isHit" value="">
<a href="javascript:void(0);" class="hit">Try</a>
</div>
//second button
<div class="msgbox_button">
<span class="hit_ok" onclick="remove();">OK</span>
</div>
任意のアイデア?あなたは何
よろしく、
ロードした後にループを開始します。私は何かが欠けていることを知っている。 – user217354
あなたのHTMLは?あなたがそこにsthを混乱させたように見えます... –
あなたの問題を示す実例を追加してください。 –