我正在尝试在网络应用程序中使用Yahoo的 YQL 创建一个脚本。该脚本查看文本段落,然后查找一些引用并将其作为弹出窗口附加到文本上。一切顺利,直到我必须使用类“verso”循环遍历每个引用,在获得我的响应后,它将所有引用附加到列表的最后一个元素中。
这是javascript代码(重写和简化)
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'>“</span>"+
$resultado.html()+
"<p align='right'><b>"+verso+"</b></p>"+
"<span class='right'>”</span></div>").appendTo($pasaje);
}
else
{
$resultado = $("<p>Pasaje no encontrado.</p>");
}
});
});
这是我的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>
我会感谢所有的帮助
答案 0 :(得分:3)
所以,我已经在代码中更改了一些内容,现在它可以正常工作,玩得开心;)
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'>“</span>"+resultado.html()+"<p align='right'><b>"+verso+"</b></p>"+"<span class='right'>”</span></div>").appendTo($("div.post-body > b.verso")[i]);
}
else
{
resultado = $("<p>Pasaje no encontrado.</p>");
}
});
});