Скопируйте .html () элемента div и передайте его в качестве атрибута title для тега <a>через jQuery. - PullRequest
2 голосов
/ 10 июля 2011

Так что в основном у меня есть «Jack Shephard» в разделе «div.actor-name a», и я хочу, чтобы это же значение было атрибутом заголовка для «div.actor-image a». То же самое относится и к «Джону Локу», поэтому несколько случаев.

JQuery:

<script type="text/javascript">
$().ready(function() {
var actortitle = $("div.actor-image a").closest.('div.actor-name a').html();

$("div.actor-image a").each(function() {
$(this).attr('title', actortitle );
});
});
</script>

HTML:

<div id="actor1" class="lost">

<div class="actor-name">
<a href="http://www.lost.com">
Jack Shephard
</a>
</div>

<div class="actor-roles">
ROLES GO HERE
</div>

<div class="actor-image">
<a title="Jack Shephard" id="actor1-image" src="jack.jpg" href="http://www.lost.com"></a>
</div>

</div>



<div id="actor2" class="lost">

<div class="actor-name">
<a href="http://www.lost.com">
John Lock
</a>
</div>

<div class="actor-roles">
ROLES GO HERE
</div>

<div class="actor-image">
<a title="John Lock" id="actor2-image" src="john.jpg" href="http://www.lost.com"></a>
</div>

</div>

Текущая версия jQuery работает не так, как ожидалось, и сводит меня с ума!

1 Ответ

2 голосов
/ 10 июля 2011
$("div.actor-image a").attr('title', function(i,val) {
    var text = $(this).parent().prevAll('.actor-name').text();
    return $.trim( text );
});

Используется метод attr() [docs] , но он передает ему функцию. Возвращаемое значение функции будет новым значением.

В этой функции используется метод parent() [docs] для перехода к родителю <a>, затем prevAll() [документы] метод для получения элемента .actor-name, затем text() [документы] метод для захвата его текстового содержимого.

Прежде чем вернуть текст, он использует метод jQuery.trim() [docs] для обрезки любого начального или конечного пробела из текста.

...