2012-06-28 3 views
2

Мне нужна помощь, и, прежде чем мы пойдем, я знаю, что это, вероятно, не лучшая практика, но я занимаюсь некоторым обслуживанием существующего сайта и должен выполнить следующее для исправления.Используйте значение «alt» для динамического набора «title»

<a rel="lightbox" href="site.com" title="a generated title"> 
    <img src="site.com/img" class="post-image" alt="a long description"/> 
</a> 

Хорошо, так что я пытаюсь выяснить, как использовать JQuery или любой другой способ, чтобы взять атрибут alt от моего образа, и динамически перезаписать атрибут моего a тега title.

Любая помощь была бы удивительной, я немного потерялся на этом этапе.

ответ

7
$(function(){ 
    $("a").each(function(){ 
     $(this).attr("title", $(this).find("img").attr("alt")); 
    }); 
}); 
+0

Сэр, вы ученый и джентльмен. Это казалось таким очевидным, не уверен, почему я этого не видел. Тем не менее. Спасибо! – Brock

0

С JQuery:

var a = $('a[rel=lightbox])'); 
var img = a.find('img'); 
a.attr('title', img.attr('alt')); 
2

вы не упомянули, какие именно <a> s вы хотели бы изменить, так что это изменило бы все <a> S с <img> внутри ...

$("a>img").each(function() { 
    $(this).parent().attr("title", $(this).attr("alt")) 
}) 
0
$('a').each(function(){ 
    $(this).attr('title',$(this).find('img').attr('alt')); 
}); 

Поскольку jsFiddle.net, по-видимому, шелушится над la день или около того, вы можете увидеть демо-версию на jsbin.

И если jsFiddle грузы, a jsFiddle example.

0

Вы можете сделать это следующим образом:

$(function() { 
    var img = $(".post-image"); 
    if(img.length == 1) // meaning, at least one element was found 
    { 
     img.attr("title", img.attr("alt")); // pass the text in alt to title 
     img.removeAttr("alt");    // remove alt 
    } 
}); 
Смежные вопросы