2013-12-16 43 views
0

我的網頁被動態,數據跑道鏈路,數據視頻連接,數據後臺鏈接產生,將會有更多的未來.....收集所有數據屬性?

的模式總是這樣的數據-xxx鏈接,我想要做的是,提取每個人的「XXX」的文字將它們存儲陣列內部,這樣我可以使用JavaScript

<li> <a data-season="Designer Profiles" data--link="123" data-video-link="1233"> </a></li> 
<li> <a data-season="Spring/Summer 2014" data-Runway-link="abc" data-video-link="abc"> 3.1 Phillip Lim</a></li> 
<li> <a data-season="Spring/Summer 2014" data-Runway-link="abc" data-video-link="abc"> Acne Studios</a></li> 
<li> <a data-season="Spring/Summer 2014" data-Runway-link="abc" data-video-link="abc"> Aigner</a></li> 
<li> <a data-season="Spring/Summer 2014" data-Backstage-link="abc" data-video-link="abc"> Alexander McQueen</a></li> 
<li> <a data-season="Spring/Summer 2014" data-Runway-link="abc" data-video-link="abc"> Alexander Wang</a></li> 

回答

6
$('a').each(function(){ 
console.log($(this).data()) 
}) 

結果是指每個信息都將看起來像:

{season: 'Designer Profiles', 'runwayLink':'abc' ...} 

小提琴:

http://jsfiddle.net/acrashik/NnHqQ/5/

STEP2:從按鍵刪除Word鏈接

最簡單的方法是:

function removeLiknfromKey(data) { 
    var jsonstr = JSON.stringify(data); 
    var new_jsonstr = jsonstr.replace(/Link":/g, '":'); 
    var new_obj = JSON.parse(new_jsonstr); 
    return new_obj; 
} 

你將有隻有XXX名稱的對象。

小提琴:

http://jsfiddle.net/acrashik/NnHqQ/6/

現在你可以很好地使用它,只用名:

data.runway, data.video, data.season ... etc 
+0

你可以收集所有數據,並保持與JSON對象的工作。與凱伊斯和數據。這是另一回事! .data()收集元素的所有數據集。甚至通過腳本設置。 –

2

當您訪問與jQuery的任何data-*屬性的元素,你可以訪問包含使用data()函數的所有data-*元素的對象。

舉例來說,如果你有這樣一個元素:

<a id="elem" data-season="Designer Profiles" data-link="123" data-video-link="1233"> </a> 

你可以做這樣的事情:

var element_data = $("#elem").data(); 

現在,內element_data每個鍵將每個數據屬性。

element_data[ "season" ]; // "Designer Profiles"; 
element_data[ "link" ]; // "123"; 
element_data[ "video-link" ]; // "1233"; 

下面是data()功能的相關文件:http://api.jquery.com/data/ 正如你所看到的,同樣的功能作爲一個getter和setter函數。因此,要檢索數據的特定鍵,你會做這樣的事情:

var video_link = $("#elem").data("video-link"); // "1233" 

你也可以設置video-link值:

var new_video_link_value = "some other value"; 
var video_link = $("#elem").data("video-link", new_video_link_value); 

把所有的這種使用,回答你的問題,你會做的是這樣的:

var elems = $("li > a"); // extract all of the relevant anchor tags 
var elem_data = []; 
$.each(elems, function(index, elem){ 
    elem_data.push($(elem).data()); 
}); 

現在,您將擁有elem_data陣列中每個錨標記的所有數據屬性。最好的辦法是給每個錨標籤某種標識符,以便將數據映射回其來源的相關元素。

0

試試這個:

$('li a').each(function(){ 
console.log($(this).data()) 
});