2011-07-10 34 views
2

所以基本上我有「傑克Shephard」在'div.actor名稱'&我想要相同的值是'div.actor-image a'的title屬性。 「約翰洛克」也是如此,所以有很多情況。複製一個div的.html()並將其作爲標題屬性傳遞給<a>通過jQuery標記

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是無法正常運轉的預期,是推動我瘋了!

回答

2
$("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()[docs]方法來獲得.actor-name元素,那麼text()[docs]方法來抓住它的文本內容。

在它返回文本之前,它使用jQuery.trim()[docs]方法修剪文本中的任何前導或尾部空白。

+0

謝謝帕特里克,作品像一個魅力和非常有幫助的答案。我在想,函數的目的是什麼(i,val)? – Wonka

+0

@移動禮物:好問題。我沒有在這個答案中使用它們,但'i'是當前元素的索引(因爲這將應用於每個找到的元素)。 'val'是'title'屬性的當前值(如果有的話)。 – user113716

+0

謝謝帕特里克:) – Wonka

相關問題