这是我的情况:
我想基于一个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" });
});
答案 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上运行。
答案 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。
选择具有指定属性的元素,其值包含由空格分隔的给定单词。