Здравствуйте.
Вопрос в следующем. Есть ряд сайтов на которых нужно найти ряд ссылок. Был написан такой скрипт (ниже).
Проблема в том, что у меня никак не получается разобраться с видимостью переменной. Внутри $.get(url, function(data) da и net проставляются корректно, но не видны урлы из массива (стоит undefined), а вне $.get(url, function(data) урлы проставляются корректно, но вместо da и net стоит undefined.
Понять что именно нужно исправить я увы так и не смог, хотя и ясно что дело в видимости "chevo". Или в неправильно поставленном for.
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<button>Get Meta Data</button>
<table>
</table>
<script type="text/javascript" src = "script.js"></script>
</body>
</html>
Код:
$('button').click(function(){
var gde = ['http://site1.ru',
'http://site2.ru',
'http://site3.ru'];
var chto = ['http://url1.ru',
'http://url1.ru',
'http://url1.ru'];
for (i=0; i<gde.length; i++){
var query = 'select * from html where url="' + gde[i] + '" and xpath="*"';
var url = 'https://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(query);
var what = chto[i];
var chevo;
$.get(url, function(data) {
var html = $(data).find('html');
var finding = 'a[href*="'+ what + '"]';
if(html.find(finding).attr('href')){
var chevo = "da"
} else {
var chevo = "net"
}
// $("table").append("<tr><td class='where'>" + gde[i] + "</td><td class='what'>" + chto[i] + "</td><td class='result'>" + chevo + "</td></tr>")
});
$("table").append("<tr><td class='where'>" + gde[i] + "</td><td class='what'>" + chto[i] + "</td><td class='result'>" + chevo + "</td></tr>")
}
});