我使用以下代码将 HTML 字符串动态添加到 div 元素。 我想在将 HTML 添加到 DOM 后每秒更改一次图像。 但是我的代码不起作用。我的错误在哪里?
var images = ["http://pathToImg1.jpg", "http://pathToImg2.jpg"];
var result = '<div class="result">'+
'<a href="'+url+'" target="_blank" id="resultTitle" class="resultTitle">'+urlTitle+'</a>'+
'<p id="resultDescription" style="height: 15px;">'+
'<div class="resultImg" style="background-image: url('+images[0]+');"></div>'+
'<span class="resultDescription" style="margin:0px 15px 0px 0;">'+description+'</span></p>'+
'<p id="resultUrl" class="resultUrl">'+url+'</p>'+
'</div>';
$("#"+targetId).append(result);
var i = 0;
setInterval(function() {
var el = $(result).find(".resultImg");
$(el).css('background-image', 'url("' + images[i] + '")');
i = i + 1;
if (i == images.length) {
i = 0;
}
}, 1000);
最佳答案
你那里有一个错误:
var el = $(result).find(".resultImg");
选择 result
变量中包含的字符串不会给您带来任何效果,因此您需要从用于附加结果的父元素中选择元素。
这一行需要这样修改:
var el = $("#"+targetId).find(".resultImg");
关于javascript - 每秒动态更改背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41610814/