2011-07-10 2 views
2

基本的に私は「div.actor-name」の下に「Jack Shephard」を持っています。&私はその同じ値を'div.actor-image a'のtitle属性です。 "John Lock"の場合も同様です。したがって、複数のケースがあります。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]メソッドを使用しますが、それに関数を渡します。関数の戻り値は新しい値になります。機能で

、それは、そのテキストの内容をつかむために、その後text()[docs]方法、そしてprevAll()[docs]方法は.actor-name要素を取得するには、<a>の親に横断するparent()[docs]メソッドを使用しています。

テキストを返す前に、jQuery.trim()[docs]メソッドを使用して、テキストの先頭または末尾の空白をトリミングします。

+0

ありがとうパトリック、魅力と非常に有用な答えのように動作します。私は不思議に思っていましたが、機能の目的の中で(i、val)は何ですか? – Wonka

+0

@ギフトギフト:良い質問です。この答えでは使用しませんでしたが、 'i'は現在の要素のインデックスです(これは見つかった各要素に適用されるためです)。そして、 'val'は' title'属性(もしあれば)の現在の値です。 – user113716

+0

ありがとうパトリック:) – Wonka

関連する問題