我需要获得有关某些网站的whois信息并将其显示到我的网站上。我设法实现它,但它不是一个直接的方法,我认为有可能以更好的方式做到这一点。我是这样做的
例如,我需要的whois信息http://megaanswers.com/所以与whateverorigin.org我得到了jsonp请求如下http://whateverorigin.org/get?url=http%3A%2F%2Fwww.domaininformation.de%2Fwhois%2Fmegaanswers.com (encodeURIComponent之后),但这包含了整个页面,但我只需要页面的一部分class="result"。
现在数据。内容将给出整个页面的HTML代码。使用jquery将此html代码添加到id="target"的div中,并为该div指定style="display:none;",以便该div不显示在页面上。现在,使用jquery选择类result的元素,并将其html添加到id="realtarget"
的div中。最后的代码应该是这样的
<div id="target" style="display:none;"></div>
<div id="realtarget"></div>
<script>
$.ajaxSetup({
scriptCharset: "utf-8", //maybe "ISO-8859-1"
contentType: "application/json; charset=utf-8"});
$.getJSON('http://whateverorigin.org/get?url=' +
encodeURIComponent('http://www.domaininformation.de/whois/megaanswers.com') + '&callback=?',
function(data) {
var thecontents = data.contents;
$('#target').html(thecontents);
var required = $('.result').html();
$('#realtarget').html("<pre>" + required + "</pre>");
});
</script>
但是,如果不首先将整个页面的html代码附加到具有id="target"的div,然后选择所需的class="result"(直接选择class="result"),是否可以做到这一点?
使用jquery可以选择元素为变量。(但不要把它编辑进去):试试这个:
function(data) {
var thecontents = data.contents;
var required = $('.result', thecontents).html(); // select '.result' class in 'thecontents'
$('#realtarget').html("<pre>" + required + "</pre>");
});
演示:http://jsfiddle.net/f97WG/2/