JQuery - 将变量值传递给类的索引值

时间:2013-03-11 17:42:11

标签: javascript jquery

我是js的新手,只学习了一个星期,所以要善待。下面的脚本会在点击类的.thumb链接时更改iframe的src以匹配同一iframe的自定义数据属性。

这很好用,但它目前正在更改所有iframe类的iframe src,父div类为.gallery。我只想更改.gallery的iframe src,其索引值与变量'clicked'相同。

//When an link with a class of .thumb is clicked

$(document).on('click', '.thumb', function () {

    //variable index is the index of the links parent 'li'
    var clicked = $(this).parent('li').index();

    // Find iFrames of all .comm-gallery elements and alter their src to iframes data-src    value
    $('.gallery').find("iframe").prop("src", function(){

        // Set their src attribute to the value of data-src
        return $(this).data("src");
    });
});

在过去的几个小时里我尝试了很多循环解决方案,但没有一个有效,而且我现在对js知之甚少,我想我是这个中最低的共同点。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:3)

在返回data-src之前添加条件

$('.gallery').find("iframe").prop("src", function(){
if($(this).index() == clicked)
  // Set their src attribute to the value of data-src
   return $(this).data("src");
});

答案 1 :(得分:0)

jquery eq选择器就是你的追随者:

http://api.jquery.com/eq-selector/

所以这个:

$('.gallery').find("iframe").prop("src", function(){

    // Set their src attribute to the value of data-src
    return $(this).data("src");
});

变为:

$('.gallery').find("iframe").eq(clicked).prop("src", function(){

    // Set their src attribute to the value of data-src
    return $(this).data("src");
});

答案 2 :(得分:0)

你要选择具有'gallery'css类的元素,其中包含点击li的索引。

$(document).on('click', '.thumb', function () {
var clicked = $(this).parent('li').index();
$('.gallery').eq(clicked).find("iframe").prop("src",function({
return$(this).data("src");
});
});