我有这个功能来更新所有图像:
setInterval(function(){
console.log($( ".image" ));
$( ".image" ).each(function( index ) {
console.log(index);
base_url = $(this).attr('src').split('?rand=')[0];
address = base_url + '?rand=' + Math.random();
$(this).attr("src", address);
});
},1000);
这用于素数p:graphicImage:
<ui:repeat value="#{imgController.imgList}" var="images">
<p:graphicImage id="pic" class="image" url="#{images.img}?rand=0" width="360px">
</p:graphicImage>
<p:draggable for="pic" />
</ui:repeat>
console.log返回给我:
0 image.xhtml?imgId=300335:31
1 image.xhtml?imgId=300335:31
2 image.xhtml?imgId=300335:31
3 image.xhtml?imgId=300335:31
这是我的疑问,如果我想要更新所有图像,有没有办法传递特定的索引:
each(function( index )
示例:
each(function( 3 )
如果我只想更新第三张图片?
答案 0 :(得分:2)
如果我只想更新第三张图片?
如果您只想更新第三张图片,可以使用.eq(3)
只检索第三张图片,如下所示:
$(".image").eq(2).attr("src", adddress);
或者,包括你的其余逻辑:
var img = $(".image").eq(2);
var base_url = img.attr('src').split('?rand=')[0];
var address = base_url + '?rand=' + Math.random();
img.attr("src", address);
并且,这是一个工作代码段,用于更改第三个图像的.src
,然后记录生成的.src
属性:
var img = $(".image").eq(2);
var base_url = img.attr('src').split('?rand=')[0];
var address = base_url + '?rand=' + Math.random();
img.attr("src", address);
// log output
$(".image").each(function() {
log(this.src);
});
function log(x) {
var div = document.createElement("div");
div.innerHTML = x;
document.body.appendChild(div);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<img class="image" src="http://dummyimage.com/100x50/0000FF/FFFFFF.jpg&text=Test?rand=1.23456789">
<img class="image" src="http://dummyimage.com/100x50/0000FF/FFFFFF.jpg&text=Test?rand=1.23456789">
<img class="image" src="http://dummyimage.com/100x50/0000FF/FFFFFF.jpg&text=Test?rand=1.23456789">
<img class="image" src="http://dummyimage.com/100x50/0000FF/FFFFFF.jpg&text=Test?rand=1.23456789">