2013-12-09 48 views
0

顯示ALT屬性使用此HTML每一個LI元素

<ul> 
    <li> 
    <a href="#">Link 1<img src="#" alt="photo 1"/></a> 
    </li> 
    <li> 
    <a href="#">Link 2<img src="#" alt="photo 2"/></a> 
    </li> 
    <li> 
    <a href="#">Link 3<img src="#" alt="photo 3"/></a> 
    </li> 
</ul> 

使用這個jQuery給我只爲所有3從第一個LI元素ALT:

var altText = $("#actioncall_buttons li > a > img").attr("alt"); 

    $("#actioncall_buttons li").hover(function() { 

     $(this).append("<span>"+altText+"</span>"); 
    }, function() { 

     $("#actioncall_buttons li span").remove(); 

    }); 

如何顯示每個特定li元素的alt?

+0

把你的'變種altText = $( 「#actioncall_buttons LI> A> IMG」).attr(「ALT 「); '在懸停循環中使用'$(this)'而不是'$(「#actioncall_buttons li> a> img」)' –

+0

改爲使用'title'屬性。瀏覽器會在短暫延遲後顯示它,無需編寫腳本,或者將其與任何[各種'tooltip'插件](https://www.google.com/search?q=jquery+tooltip)用於jQuery to根據自己的喜好設計工具提示。 – Blazemonger

回答

2

你做錯了。您應該在懸停時獲取替代文字。

$("#actioncall_buttons li").hover(function() { 
var altText = $(this).find("img").attr("alt"); 
    $(this).append("<span>"+altText+"</span>"); 
}, function() { 
    $("#actioncall_buttons li span").remove(); 
}); 

Working Fiddle

0

使用

$("#actioncall_buttons li > a > img").attr("alt") 

這是因爲你的jQuery選擇選擇多個ALT屬性不能得到他們的alt屬性。他們每個人都有不同的內容。 jQuery在這種情況下所做的就是返回找到的第一個。

所以,如果你要訪問的所有不同的alt標籤,你可以acccess他們是這樣的:

var images = $("#actioncall_buttons li > a > img"); 
$(images).each(function() { 
    var alt = $(this).attr("alt"); 
}); 
相關問題