2009-07-20 5 views
1

これは私が必要とするランダムなものです。基本的に私の設定は次のようなものです:javascript jqueryネストされた属性を取得する

<div class="classname"> 
    <h3> 
    <a class="anchor_classname" title="some_title">..</a> 
    </h3> 
</div> 

上記のHTMLセグメントは、既存のすべてのレコードのページで繰り返されます。

Jqueryを使用して、ネストされたアンカー(つまり「some_title」)からツールチップテキストを取得し、このテキストを含むdivの 'title'属性に設定します。各タイトルのテキストが一意であるすべてのレコードに対してこれを実行する必要があります。これは私が示した設定で可能ですか、またはレコードを区別するための固有の識別子が必要ですか?誰かがjqueryでこれを達成する方法を記述できますか?ありがとう。

更新:デビッドの提案を使用して、私は彼のコードを使用して、次のように少しそれを変更するために管理:

私は厳密に(親のようにjqueryの関数を使用するライン2と3を変換するにはどうすればよい
$('a.anchor_classname').each(function() { 
     var title = $(this).attr("title"); //line 1 
     var div = this.parentNode.parentNode; //line 2 
     div.title = title; //line 3 
    }) 

)およびattR() 。 (それはそのままでは動作しますが、コンプライアンスのために標準のjquery関数を使用する方が良いと思われます)。このような方法で情報を複製

答えて

2

は、アクセシビリティに有害である可能性が高い(またはスクリーン・リーダーのユーザーに少なくとも刺激性)であるものとして私を打つ、そしてより良い埋めるためにh3h3を埋めるために、リンクをスタイリングすることによって得られる効果を提供しますdiv

jQuery('div.classname > h3 > a.anchor_classname').each(function() { 
    var title = this.title; 
    var div = this.parentNode.parentNode; 
    div.title = title; 
}) 

たり遅く、あまり効率的で、jQueryの-どこネイティブ-DOMは-だろうなアプローチ:

jQuery('div.classname > h3 > a.anchor_classname').each(function() { 
    var jq = jQuery(this); 
    var title = jq.attr('title'); 
    var div = jq.parent().parent(); 
    div.attr('title', title); 
}) 
+0

感謝を、このテストされていないコードは、おそらく仕事をする、と述べた

これはうまくいった。 parent()やattr()のような標準のjquery関数でこれを変換するものはありますか?私は最初の行を次のように変更することができました:var title = $(this).attr( "title");それは働いた。しかし、私は最後の2つを変えても成功しなかった。 – oym

+0

haha​​..love the sarcasm。あなたの助けに感謝します。誰かが私にそうでないと確信できない限り、私はより高速なDOMアプローチに固執することになります。 – oym

関連する問題