根据链接状态将标题附加到链接(a href)标记

时间:2011-01-14 16:25:27

标签: jquery html

$("a[rel='view-show-info']").click(function() {
    $(this).parent().next('.show-info').slideToggle(70);

    var img = $("img", this).attr("src");
  if( img == "<?=base_url();?>assets/images/plus.png") // or check the end of the path or similar
   $("img", this).attr("src", "/images/minus.png");
  else
   $("img", this).attr("src", "/images/plus.png");

    return false;
});

<a href="#" rel="view-show-info" class="view-more">
  <img src="/images/plus.png" alt="expand selection">
</a>

根据用户点击的内容显示正负图像。

我想在链接上添加标题,如果图像显示的是minus.png图像,则将标题设置为title =“contract selection”,如果显示的是plus.png图像,则将其设置为title = “扩大选择”

所以链接就像:

minus.png:

<a href="#" rel="view-show-info" class="view-more" title="contract selection">
  <img src="/images/minus.png" alt="contract selection">
</a>

plus.png

<a href="#" rel="view-show-info" class="view-more" title="expand selection">
  <img src="/images/plus.png" alt="expand selection">
</a>

我想我必须使用追加功能,但就我所知,任何帮助都是值得赞赏的。

2 个答案:

答案 0 :(得分:2)

您可以使用.closest遍历树并找到锚点(这样您就可以更改它的标题属性):

var src = '/images/plus.png';
var title = 'expand selection';
if( img == "<?=base_url();?>assets/images/plus.png")
{
  src = '/images/minus.png';
  title = 'collapse selection';
}
$("img", this) // grab your image (per normal)
  .attr({'src':src,'alt':title}) // change the source
  .closest('a') // go up the three to find the anchor
  .attr('title',title) // change the anchor's title

编辑哎呀,你要去找锚 EDIT2 稍微更改了代码,使其更加流线型化。现在也改变了img alt属性。 (仍在IE上工作)

答案 1 :(得分:0)

if( img == "<?=base_url();?>assets/images/plus.png"){
    $("img", this).attr("src", "/images/minus.png").parent().attr('title', 'contract selection');
} else {
    $("img", this).attr("src", "/images/plus.png").parent().attr('title', 'expand selection');
}