2012-12-08 84 views
0
<ul id="ulGall"> 
<li><img src="gaLL/red.jpg"/></li> 
<li><img src="gaLL/blue.jpg"/></li> 
<li><img src="gaLL/white.jpg"/></li> 
<li><img src="gaLL/orange.jpg"/></li> 
</ul> 

如何從ul圖像獲取img src屬性?

$(document).ready(function() { 
x = 0; 
z = $('#ulGall li').length; 
}); 

$('#btnR').click(function() { 
    if(x == z) {x = 1;} 
    else {x = x + 1;} // till here everything works 

    alert ($('ulGall').index =x, src attribute // just as description 

即 - 給我的img src屬性 - 在li index = x

所以首先點擊要gaLL/red.jpg
下一頁點擊 - gaLL/blue.jpg
橙後 - 紅了起來。

+0

只是爲了完整起見,我添加一個jQuery選擇;) – Alexander

回答

1

我想我會提供一個選擇,儘管有一個已接受的回答您:

function clicks(el){ 
    if (!el) { 
     return false; 
    } 
    else { 
     var i = 0; 
     clicks = function(el){ 
      var kids = $(el).find('img').length, 
       which = i < kids ? i : i%kids; 
      console.log($(el).find('img').eq(which).attr('src')); 
      i++; 
     }; 
     clicks(el); 
    } 
} 

$('#ulGall').click(
    function(){ 
     clicks(this); 
    });​ 

JS Fiddle demo

和稍微修訂的,不太jQuery的功能:

function clicks(el) { 
    if (!el) { 
     return false; 
    } 
    else { 
     var i = 0; 
     clicks = function(el) { 

      var imgs = el.getElementsByTagName('img'), 
       kids = imgs.length, 
       which = i < kids ? i : i % kids; 

      console.log(imgs[which].src); 
      i++; 
     }; 
     clicks(el); 
    } 
} 

JS Fiddle demo

+0

大衛,在接受的答案我得到警報'undefined'。你有什麼想法嗎? – Alegro

+0

發佈一個鏈接到[JS小提琴](http://jsfiddle.net/)現場演示,展示你如何將答案與你自己的代碼結合起來,我會看看我能做些什麼。不過,我會建議,要問的更好的人是發佈代碼的人。另外,如果這個答案不能解決你的問題,那麼接受它作爲你的答案並不是一個好主意(因爲它有效地誤導了將來閱讀這個問題的任何人,坦率地說,*並不能解決你的問題)。 –

1

你可以得到「SRC」第一李裏面IMG的屬性是這樣的:

$("#ulGall li").eq(0).next("img").attr("src"); 

在.EQ()函數的數量決定了鋰元素的目標 - 與第一具有0

1
$('#btnR').click(function() { 
    if(x == z) {x = 1;} 
    else {x++} 
    var source=$("#ulGall li").eq(x).next("img").attr("src"); 
    alert(source); 
}); 

這裏的技巧的索引是使用.EQ(),其選擇基於它的索引的元素,也可以直接從選擇器像這樣選擇由索引的元素:

$("#ulGall li:eq(0)") 
+0

它似乎 - 解決。感謝everyOne。 – Alegro

1

您可以使用jQuery的:eq選擇器。

$('#ulGall li:eq(0) img').attr('src')​ 
0

爲了完整起見,似乎這裏缺少一個好的jQuery替代方法。

$('button').each(function(){ 
    var idx = 0, $gallery = $("#ulGall").find("img"); 
    $(this).click(function(){ 
     var src = $gallery.eq(idx).attr("src"); 
     idx = (idx == $gallery.length - 1) ? 0 : idx + 1; 
    }); 
});​ 

A live example.