2011-11-18 77 views
0

我必須根據當前圖像路徑找到下一張圖像。這是一些定製的燈箱和jQuery 1.3.2。我的HTML:通過子集內的屬性值查找元素

<div id="feat_screenshots"> 
    <a class="lightbox" href="/images/features/1.gif"><img title="Image 1" alt="Image 1" src="/images/features/1.gif"></a> 
    <a class="lightbox" href="/images/features/2.gif"><img title="Image 2" alt="Image 2" src="/images/features/2.gif"></a> 
    <a class="lightbox" href="/images/features/3.gif"><img title="Image 3" alt="Image 3" src="/images/features/3.gif"></a> 
</div> 

和我的javascript:

$(document).ready(function(){ 
    $("a.lightbox").click(function(){ 
     var img_src = $(this).attr("href"); 
     getNextImage(img_src); 
    }); 
} 

function getNextImage(curPath) 
{ 
    var $picset = $("a.lightbox"); 
    alert($($picset).find("img[src=\'/images/features/1.gif\']").attr("title")); 
    alert($($picset).find("img[src$=\'/images/features/1.gif\']").attr("title")); 
    alert($($picset).find("img[src=curPath]").attr("title")); 
    alert($($picset).find("img[src$=curPath]").attr("title")); 
/* 
    to be continued... 
*/ 
} 

我只是試圖找出什麼可行,什麼不是。我在這裏只使用.attr(「title」)來調試以測試我找到的圖片。

如果我將'/images/features/1.gif'傳遞給getNextImage(),則只有第二次警報返回正確的標題;所有其他人回來爲'未定義'。

所以我的問題是:什麼是正確的語法來使用我的變量curPath這裏獲得一個元素?沒有我試過的作品。

回答

2

curPath是一個變量,所以你需要把它串聯到選擇

$($picset).find("img[src='" + curPath + "']").attr("title") 
+0

$ picse始終是第一個

0

只使用

$(document).ready(function(){ 
    $("a.lightbox").click(function(){ 
     var img_src = $(this).find('img').attr('src'); 
    }); 
} 

和映入getNextImage作品只有第一要素

你套裝

var $picset = $("a.lightbox"); 

這始終是您的第一

<a> 

如果你真的想傳遞給另一個函數,你可以做到這一點

getNextImage($(this),img_src); 

然後在功能上得到它

function getNextImage(current_anchor,curPath) 
{ 
    var img_src = $(current_anchor).find("img[src='" + curPath + "']").attr("title"); 

} 
0

不是一個直接的答案你的問題,但如果你真的想要做的是獲得下一個a標籤,爲什麼不使用next()函數?

$("a.lightbox").click(function(){ 
    var nextImage = $(this).next(); 
}); 
1

是curPath是varibale ???

所以試試這個。 ($(picset).find(「img [src =」+ curPath +「]」)。attr(「title」));

+0

$ picse始終是第一個