2

我是 js 新手,只学习了大约一周,所以请善待。当单击具有 .thumb 类的链接时,下面的脚本会更改 iframe 的 src 以匹配同一 iframe 的自定义数据属性。

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

//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 知之甚少,我想我是这方面的最低公分母。任何帮助将不胜感激!

4

3 回答 3

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");
});
于 2013-03-11T17:45:11.967 回答
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");
});
于 2013-03-11T17:46:13.623 回答
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");
});
});
于 2013-03-11T18:00:43.847 回答