2017-01-22 102 views
0

試圖讓與jQuery屬性值,然後將其與類獲得自定義屬性與jQuery

<div id="data" class="democlass" data-author="Mr. Jhon Doe" data-cat="Technology" data-url="https://google.com"></div> 

<p class="data-author"></p> 
<p class="data-cat"></p> 
<a href="#"></a> 
$("#data").each(function() { 
    var author = $(this).attr("data-author"); 
    var cat = $(this).attr("data-cat"); 
}); 

$(document).ready(function() { 
    $(".data-author").append(author); 
    $(".data-cat").append(cat); 
}); 

我做得不對的代碼附加到元素的值?這裏是示例codepen

+1

變量在不同的範圍 –

+0

第一,爲什麼你使用'上each''id'屬性?我沒有發現多個div使用每個循環? –

+0

給['$ .data()'](https://api.jquery.com/jquery.data/)一個機會。 –

回答

2

變量處於不同的範圍,因此它將是undefined,因此在文檔就緒處理程序中執行這兩個操作。雖然each()在這裏完全沒有必要,因爲id是唯一的(如果有多個元素具有相同的id,那麼只有第一個元素被選中)。

$(document).ready(function() { 
    // cache the element 
    var $ele = $("#data"); 

    // append contents 
    $(".data-author").append($ele.attr("data-author")); 
    $(".data-cat").append($ele.attr("data-cat")); 
}); 

UPDATE:您雖然使用data()方法來獲得定製data-*屬性值。

$(".data-author").append($ele.data("author")); 
$(".data-cat").append($ele.data("cat")); 
+1

感謝您的答案兄弟.. – bona

+0

@bona:很高興幫助:) –

+0

你可以請幫助我,因爲我的條件udpated在問題?我想在屬性中添加url,然後將其用作鏈接目標和鏈接文本。 – bona

0

無需每次循環

$(document).ready(function() { 
$(".data-author").append($("#data").attr("data-author")); 
$(".data-cat").append($("#data").attr("data-cat")); 
});