簡體   English   中英

每秒在div中獲取圖像ID

[英]Get image ids in a div every second

當點擊以下代碼的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>

上面的代碼完美地工作,在點擊卡片 div時執行圖像ID的警告消息。 現在我想要的是運行這個功能,而不是每5秒鍾點擊一次div。 我嘗試過setInterval(getimgid,5000) ,但它不起作用。 我應該修改上面代碼的哪一部分來調用函數而不單擊div。 任何幫助將非常感激。

的jsfiddle

你應該這樣稱呼它:

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);

DEMO

問題 :您沒有觸發setInterval的單擊。 您只需每5秒重新運行一次事件綁定。

解決方案 :在另一個觸發點擊的功能上設置Interval。 或者,如果您根本不想手動點擊,則完全刪除click裝訂。

更新小提琴http//jsfiddle.net/abhitalks/3Dx4w/5/

JS

var t;

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

t = setInterval(trigger, 5000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM