如何在jquery中更新每个函数的特定索引?

时间:2016-03-15 15:15:13

标签: jquery jsf-2 primefaces

我有这个功能来更新所有图像:

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 )

如果我只想更新第三张图片?

1 个答案:

答案 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">