Récupérer un attribut directement depuis la méthode load
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:
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..
Code:
1 2 3 4
| $("ul.pages li").each(function() {
var loadText = $(this).html() + "button";
$("#results").append($('<div>').load(loadText));
}); |
Est-ce qu'il y a un moyen de récupérer directement cet attribut plutôt que le code du button?
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:
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"))); |