Question

Je suis en train de faire un script en utilisant Yahoo YQL dans un applicaion web. Le script donne sur un paragraphe de texte, puis il trouve quelques références et le texte ajoute dans une fenêtre contextuelle. Tout va bien jusqu'à ce que je dois boucle à travers chaque référence à la classe « verso », après avoir obtenu ma réponse, il ajoute toutes les références dans le dernier élément de la liste.

Voici le code javascript (réécrite et simplifié)

            var url="";
            var version = "RVR1960";
            var verso = "";

            $("div.post-body").find(".verso").each(function(i){
                $resultado = null;
                verso = $(this).text();
                url = "http://query.yahooapis.com/v1/public/yql?" + "q=select%20*%20from%20html%20where%20url%3D%22"+
                    encodeURIComponent("http://www.biblegateway.com/passage/?search=" + verso +
                    "&version=" + version) + "%22&format=xml'&callback=?";
                $pasaje = $(this);

                $.getJSON(url,function(data){
                    if(data.results[0])
                    {
                        $resultado = null;
                        $resultado = $(data.results[0]).find("div.result-text-style-normal:first");
                        $resultado.find("h5, div, a").remove();
                        $("<div class='cita'><span class='left'>&ldquo;</span>"+
                            $resultado.html()+
                            "<p align='right'><b>"+verso+"</b></p>"+
                            "<span class='right'>&rdquo;</span></div>").appendTo($pasaje);
                    }
                    else
                    {
                        $resultado = $("<p>Pasaje no encontrado.</p>");
                    }
                });
            });

et voici mon html:

<div class="post-body"><b class="verso">Juan 3:16</b><b class="verso">Mateo 11:28</b><b class="verso">Juan 1:1</b></div>

Je vais apprécier toute l'aide

Était-ce utile?

La solution

, je changer plusieurs choses dans votre code, maintenant il fonctionne, amusez-vous;)

var url="";
var version = "RVR1960";
var verso = "";

$("div.post-body > b.verso").each(function(i){
    resultado = null;
    verso = $(this).text();
    url = "http://query.yahooapis.com/v1/public/yql?"+"q=select%20*%20from%20html%20where%20url%3D%22"+encodeURIComponent("http://www.biblegateway.com/passage/?search="+verso+"&version="+version)+"%22&format=xml'&callback=?";

    $.getJSON(url,function(data){
        if(data.results[0])
        {
            resultado = null;
            resultado = $(data.results[0]).find("div.result-text-style-normal:first");
            resultado.find("h5, div, a").remove();
            $("<div class='cita'><span class='left'>&ldquo;</span>"+resultado.html()+"<p align='right'><b>"+verso+"</b></p>"+"<span class='right'>&rdquo;</span></div>").appendTo($("div.post-body > b.verso")[i]);
        }
        else
        {
            resultado = $("<p>Pasaje no encontrado.</p>");
        }
    });
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top