0

这是我的情况:

我想根据一个 img 的 alt 影响一个动作,但我有两个 imgalt='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

4 回答 4

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']")

在初始选择器中测试两者。

于 2013-08-27T15:25:18.613 回答
0

仅将悬停附加到 src 属性中包含 gif 并具有 alt 文本的图像。

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

jQuery 的选择器[attribute="xxx"]已经为 text 执行了 contains

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

于 2013-08-27T15:25:41.247 回答
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){
于 2013-08-27T15:22:58.577 回答
0

尝试使用.is()

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

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

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

于 2013-08-27T15:23:45.803 回答