如何根据图像的src选择alt?

时间:2013-08-27 15:20:34

标签: javascript jquery jquery-selectors

这是我的情况:

我想基于一个img的alt来影响一个动作,但我有两个img,它们都有alt='Grow Your Business'。我不能改变任何一个alt,业务通过CMS控制这个。因为除了alt中的措辞之外,我没有别的方法来唯一地识别我想要影响的元素,我想要完成的是通过alt选择,然后编写一个javascript函数,如果这个特定的img是alt具有包含'GrowYourBusiness_on.gif'的src,执行此操作。

以下是我的内容,但我的语法目前无法使用。我究竟做错了什么?我不确定我是否可以按照我现在尝试的方式使用“this”。

$("[alt='Grow Your Business']").hover(function () {
  if ($("this:contains('GrowYourBusiness_on.gif')"))
     $("#MainNavItems_7").show("fast").css({ "z-index": "3000" });    
 });

4 个答案:

答案 0 :(得分:1)

$("[alt='Grow Your Business']").hover(function () {

    if ($(this).attr('src')=="GrowYourBusiness_on.gif")

        $("#MainNavItems_7").show("fast").css({ "z-index": "3000" });    

});

但为什么不呢......

$("[src='GrowYourBusiness_on.gif'][alt='Grow Your Business']")

在初始seletor中测试两者。

答案 1 :(得分:0)

您应该检查属性src

$("[alt='Grow Your Business']").hover(function () {
     if ($(this).attr('src') == 'GrowYourBusiness_on.gif'){
         $("#MainNavItems_7").show("fast").css({ "z-index": "3000" });    
     }
});

如果路径是绝对的,那么您可以查看您要查找的子字符串的字符串:

if ($(this).attr('src').indexOf('GrowYourBusiness_on.gif') != -1){

答案 2 :(得分:0)

尝试使用.is()

if ($(this).is('[src$="GrowYourBusiness_on.gif"]')) {

您可能还想使用mouseenter而不是hover,因为hover回调将同时在mouseenter和mouseleave上运行。

http://jsfiddle.net/mblase75/gERVF/

答案 3 :(得分:0)

将悬停仅附加到src属性中包含gif的图像,并使用替代文字。

$('img[src="GrowYourBusiness_on.gif"][alt="Grow Your Business"]').hover(function(){
    $("#MainNavItems_7").show("fast").css({ "z-index": "3000" });
});

jQuery的[attribute="xxx"]选择器已经performs a contains for the text

  

选择具有指定属性的元素,其值包含由空格分隔的给定单词。