Hello,
J'utilise un code pour afficher la liste de toutes les urls de mon site web et j'ajoute un div avec id results où je voudrais stocker tous les data-video-url que je trouve dans ces pages :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <ul class="pages"> @foreach(var pageNode in pages){ var url = UrlPath.ResolveUrl(pageNode.GetUrl(culture), true, true); <li>@url</li> } </ul> <div id="results"> </div>
Ensuite j'utilise un script pour loader chaque page à l'intérieur desquelle je vais chercher les boutons et je stocke le code HTML du bouton dans #results. Mais ce que je voudrais en fait stocker c'est l'attribut data-video-url qui se trouve sur ces boutons..
Est-ce qu'il y a un moyen de récupérer directement cet attribut plutôt que le code du button?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $("ul.pages li").each(function() { var loadText = $(this).html() + "button"; $("#results").append($('<div>').load(loadText)); });
Merci
Sophie
J'ai aussi tenté de faire ce travail en 2 étapes : d'abord charger les code html button puis recupérer l'attribut mais mon message d'alerte "Process is finished" apparait avant que mes pages soient toutes crawlées.. je suppose que je n'ai pas bien compris le fonctionnement des Deferred :-(
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function crawl(){ var r = $.Deferred(); $("ul.pages li").each(function() { var loadText = $(this).html() + "button"; $("#results").append($('<div>').load(loadText)); }); return r; } function getVideoUrls(){ var r = $.Deferred(); $("#results div").each(function(){ var urlVideo = $(this).find("button").attr("data-video-url"); if(urlVideo != null){ $(this).append("<p>" + urlVideo + "</p>"); } }); return r; } // Now call the functions one after the other using the done method crawl().done(getVideoUrls().done(alert("Process is finished")));
Partager