2009-07-20 88 views
1

這是一種我需要的隨機事物。基本上我的設置是這樣的:javascript jquery抓取嵌套屬性

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

以上的html片段在頁面上重複所有現有的記錄。我需要做的是:使用Jquery,我想從嵌套錨點(即「some_title」)抓取工具提示文本,並將此文本設置爲包含div的「標題」屬性。我需要爲每個標題文本都是唯一的所有記錄完成此操作。這可能與我已經顯示的設置,或者我需要一些獨特的標識符來區分記錄?有人可以描述如何用jQuery來實現這個嗎?謝謝。

更新:使用大衛的建議,我設法用自己的代碼,並稍微改變,如下所示:

$('a.anchor_classname').each(function() { 
     var title = $(this).attr("title"); //line 1 
     var div = this.parentNode.parentNode; //line 2 
     div.title = title; //line 3 
    }) 

我如何轉換線2和3,嚴格使用像父)jQuery的功能(和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」);它的工作。但是我沒有成功改變最後兩個。 – oym 2009-07-20 09:48:10