【问题标题】:jQuery Image Selector With Variables As Attributes以变​​量为属性的 jQuery 图像选择器
【发布时间】:2011-02-20 02:03:31
【问题描述】:

我遇到了 jQuery 选择器的问题(再次)。我敢肯定这真的很简单,但我似乎很挣扎。

这是导致我出现问题的选择器。变量 ClassImg 和 TitleImg 似乎都可以。

$('img [class=' + ClassImg + '][attr="1"][title=' + TitleImg + ']').attr("src", "../graphics/stars/FullStar.png");

我一直在这里摆弄它:http://jsfiddle.net/PottyMonster/aYr8e/

提前感谢您的帮助。

【问题讨论】:

  • 您能否将最简单的html树添加到问题中? jsFiddle 示例的代码比乍一看所需的要多,但是如果没有您尝试匹配的 html,就不可能说出您的选择器出了什么问题...

标签: jquery variables selector


【解决方案1】:

一些有用的注释:

  1. 您可以使用 img.' + ClassImg 类选择器而不是 [attr] 选择器作为类名。
  2. 我猜你的意思是alt=1
  3. 由于您使用的是 jquery,因此请查看使用 .hover(),因为这将有助于减少 Unobtrusive javascript 的生成。
  4. 如果您使用 Unobtrusive javascript 将您的事件处理程序包装在 $(document).ready(function(){}); 或只是 $(function(){});

通过查看您的示例,您希望在悬停时突出显示星星。 由于您在<p> 标签下有星星,您可以在<img> 上调用父级,然后使用:lt() 选择器选择比您悬停的当前星星少的<img/> 星星。将所有这些放在一起最终会得到以下内容:

$("img").hover(function() {
    var AltImg = $(this).attr("alt");
    $(this).parent().children(":lt(" + AltImg + ")").attr("src", "http://www.sweetashoney.co.uk/graphics/stars/FullStar.png");
},
function() {
    $('img[name=FeedbackStar]').attr("src", "http://www.sweetashoney.co.uk/graphics/stars/EmptyStar.png");
});

jsfiddle 上的示例。

希望这会有所帮助!如果我错过了标记,请告诉我,我会重新访问。

【讨论】:

  • 哇!太完美了,我知道一定有更简单的方法,...但是在凌晨 2 点,我的功能不太好,哈哈。谢谢马克!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
相关资源
最近更新 更多