संपादित करें: मैंने बाद में टिप्पणी की अन्य उपयोगकर्ताओं की मदद से इस मुद्दे को समझ लिया है। समस्या यह है कि jQuery.load() का उपयोग करना एक अंतराल समय है। और जैसा कि नीचे बताया गया है, समस्या वैरिएबल देखी गई थी, बस इसके भीतर डेटा नहीं था। नीचे की समस्या का मेरा समाधान jquery's deferred object फ़ंक्शंस का उपयोग करके कोड को थोड़ा समायोजित कर रहा था।j JSery.each() फ़ंक्शन के बाहर मेरा जेएस चर क्यों नहीं देखा जा रहा है?
$.ajax({
url: 'koc-click-tracker-loader.php',
data: {url: 'ar'},
dataType: 'html',
context: document.body })
.done(function(data) {
// Same functionality as below
});
मूल पोस्ट: मैं 7 कॉलम
रैंक के साथ एक HTML तालिका पार्स करने के लिए कोशिश कर रहा हूँ | उपयोगकर्ता नाम | सर्वोच्च सीपीएम | अंतिम 24 घंटे | कुल क्लिक | लिंक बाएं | अंतिम क्लिक
तब मैं प्रत्येक पंक्ति का डेटा JSON ऑब्जेक्ट में डाल रहा हूं। हालांकि, जब मैं .each() लूप के बाहर डेटा तक पहुंचने का प्रयास करता हूं, तो मैं नहीं कर सकता। मेरा चर वैश्विक स्तर पर परिभाषित किया गया है। जब मैं कोशिश करता हूं, डीबगिंग के लिए, चेतावनी (आउटपुट 1 रैंक)।
var output = [];
$(function(){
var output = [];
$("#_BLANK").load("koc-click-tracker-loader.php #ar_content table", { url: 'ar' }, function() {
var data = $("#_BLANK table tbody"); i=0;
data.find('tr').each(function() {
var $td = $(this).find('td');
if (i > 0) { // Skip first iteration, has blank data.
output[i] = {
Rank: $td.eq(0).text(),
User: $td.eq(1).text(),
KocID: $td.eq(1).find('a').prop("href"),
CPM: $td.eq(2).text(),
Last24: $td.eq(3).text(),
TotalClick: $td.eq(4).text(),
LinksLeft: $td.eq(5).text(),
LastClicked: $td.eq(6).text() };
}
i++;
});
// Will Error here as well.
});
alert(output[1].Rank); // Errors here.
console.log("output", output); // Shows all the data properly.
});
गुण अपरिभाषित की 'रैंक' नहीं पढ़ सकता।
फिर से, किसी कारण से, मेरा चर वैश्विक नहीं है। या कुछ ऐसा है जो मुझे jQuery के साथ कुछ याद आ रहा है ...
'चेतावनी (आउटपुट [0] रैंक); 'एक त्रुटि देता है क्योंकि आपका' आउटपुट [0]' तत्व 'अपरिभाषित' है - आप जानबूझकर अपने लूप में इंडेक्स 1 छोड़ते हैं। – nnnnnn
इस मामले में, यह सही है। मेरे हिस्से पर टाइपो। 1 या अधिक अभी भी त्रुटि। –
उस स्थिति में यह [इस सवाल] का एक डुप्लिकेट प्रतीत होता है (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call?noredirect = 1 और lq = 1) और कुछ अन्य। ध्यान दें कि यह आपको नहीं बता रहा है कि 'आउटपुट' अपरिभाषित है, यह आपको बता रहा है कि' आउटपुट [1] 'अपरिभाषित है। – nnnnnn