我编写了一个函数来显示外部网页中的一些段落标记。出于某种原因,结果显示在firebug控制台中,但没有按照我想要的方式显示在网页上(空白页)。
function requestCrossDomain(callback){
var querylink = "select * from html where url='http://somedomain.com'" +
" and xpath='/html/body/div/div/div[2]/div/div/div/dl'";
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' +
encodeURIComponent(querylink) + '&format=json&callback?';
$.getJSON(yql, function(data){
if (typeof callback === 'function'){
callback(data);
}
});
}
我的firebug控制台显示以下值。
{"query":{"count":1,"created":"2013-12-23T06:31:46Z","lang":"en-US","results":{"dd":{"p":"Hills: High"}}}}
如何修改代码以显示P标记的值,即“Hills:High”
我从HTML代码调用该函数并尝试在“#targetWrapper”中显示值
requestCrossDomain(function(results){
$('#targetWrapper').html(results);
});
答案 0 :(得分:1)
编辑以反映功能性fiddle
$(document).ready(function(){
requestCrossDomain();
});
function requestCrossDomain(){
var querylink = "select * from html where url='http://www.bom.gov.au/wa/forecasts" +
"/armadale.shtml' and xpath='/html/body/div/div/div[2]/div/div" +
"/div/dl'";
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' +
encodeURIComponent(querylink) + '&format=json&callback?';
$.getJSON(yql, function(data){
$('#targetWrapper').html(data.query.results.dl.dd[0].p);
$("#targetWrapper").append("<br/><strong>" + JSON.stringify(data) + "</strong>");
});
}
您的数据格式非常不合适而且您不能拥有两个具有相同名称的功能。
答案 1 :(得分:0)
您从$.getJSON
返回的对象很简单Javascript Object。您可以像访问任何其他对象一样访问它:
在这种情况下,您可以使用:
requestCrossDomain(function(results) {
$("#targetWrapper").html(results.query.results.dd.p);
}
我强烈建议您阅读我上面链接的MDN文档。将MDN加入书签也是一个好主意;这是一个很容易访问的好资源。