Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每秒在div中获取图像ID_Javascript - Fatal编程技术网

Javascript 每秒在div中获取图像ID

Javascript 每秒在div中获取图像ID,javascript,Javascript,使用以下代码单击div时,我成功获取了div中所有图像的id: <script type="text/javascript"> function getimgid(){ var elems = [].slice.call( document.getElementById("card") ); elems.forEach( function( elem ){ elem.onclick = function(){ var arr = [], imgs = [].slice.cal

使用以下代码单击div时,我成功获取了div中所有图像的id:

<script type="text/javascript">
function getimgid(){
var elems = [].slice.call( document.getElementById("card") );
elems.forEach( function( elem ){
elem.onclick = function(){
    var arr = [], imgs = [].slice.call( elem.getElementsByTagName("img") );
    if(imgs.length){
        imgs.forEach( function( img ){
            var attrID = img.id;
            arr.push(attrID);
        alert(arr);
        });
    } else {
        alert("No images found.");
    }
};
});
}
</script>

函数getimgid(){
var elems=[].slice.call(document.getElementById(“card”);
要素forEach(功能(要素){
elem.onclick=函数(){
var arr=[],imgs=[].slice.call(elem.getElementsByTagName(“img”));
if(imgs.长度){
imgs.forEach(函数(img){
var attrID=img.id;
arr.push(attrID);
警报(arr);
});
}否则{
警报(“未找到图像”);
}
};
});
}
上面的代码工作得很好,当单击div时,会发出图像id的警报消息。现在我想要的是在每5秒钟不单击div的情况下运行此功能。我尝试了设置间隔(getimgid,5000),但它不起作用。我应该修改上面的哪部分代码来调用函数而不单击div。如果您有任何帮助,我将不胜感激


您应该这样称呼它:

setInterval (function(){
getimgid();
},5000);
同时删除元素的click事件的绑定

使用elem.click()触发单击

function getimgid() {
    var elems = [].slice.call(document.getElementsByClassName("card"));
    elems.forEach(function (elem) {
        elem.onclick = function () {
            var arr = [],
                imgs = [].slice.call(elem.getElementsByTagName("img"));
            if (imgs.length) {
                imgs.forEach(function (img) {
                    var attrID = img.id;
                    arr.push(attrID);
                    alert(arr);
                });
            } else {
                alert("No images found.");
            }
        };
        elem.click();
    });
}
setInterval(getimgid, 1000);
问题:您没有在
设置间隔中触发单击。您只需每隔5秒重新运行事件绑定

解决方案:在另一个触发单击的函数上设置间隔。如果您根本不想手动单击,也可以删除
单击
绑定

更新小提琴:

JS:


调用函数应该是
getimgid()
。没有错误,我想elem.onclick部分必须修改或删除,但是每次我这样做都不起作用。@ClydeWinux:如果你能创建小提琴就太好了。在这段代码中,你在哪里调用你的php?你想每5秒触发一次点击吗?问题是你没有在setInterval中触发点击。您仅每5秒重新运行一次事件绑定。我已设置该div没有单击事件。当页面加载时,每5秒调用一次函数getimgid()。
var t;

function trigger() {
        var elems = [].slice.call(document.getElementsByClassName("card"));
    elems.forEach(function (elem) {
        elem.onclick();
    });
}

t = setInterval(trigger, 5000);