2012-08-10 42 views
2

请原谅我,因为我仍然是jQuery的新手,我比使用自己的代码更容易使用其他代码。 我的问题是关于这一行,具体为:jQuery语法顺序

$('r1.lastrow td.cell.c0').html(page).each(function(index, content) { 

是在正确的语法顺序HTML(网页)?你怎么看?

$.get('---------------/learn/mod/lesson/report.php?id='+lesson+'&action=reportdetail&userid='+userid+'&try='+lastAttempt, success: function(data) { 
     var page = $(data); 

     var lessonArray= new Array(); 
     //loop through each element and grab the text 

     $('tr.r1.lastrow td.cell.c0').html(page).each(function(index, content) { 
      score=parseInt(content.substr(content.length - 1)); 
      lessonArray[index]=score; 
     }); 

    allLessonsArray[name]=lessonArray; 
    }); 

编辑:我有另一个问题,这次主要是由于我对jQuery的经验不足。

userid= 17320; 
courseid=4745; 
allLessonsArray=script(userid, courseid); 
function script(userid, courseid){ 


var lessonInTopicSectionArray= new Array(); 
lessonInTopicSectionArray['Floods, external']=376; 

var allLessonsArray= new Array(); 
$.each(lessonInTopicSectionArray, function(name, lesson){ 


    lastAttempt = 0; 
    url='----/learn/mod/lesson/report.php?id='+lesson+'&action=reportdetail&userid='+userid+'&try='+lastAttempt; 
    $.get(url, function(data) { 
     var page = $(data); 

     var lessonArray= new Array(); 
     //loop through each element and grab the text 

     $('tr.r1.lastrow td.cell.c0').html(page).each(function(index, content) { 
      score=parseInt(content.substr(content.length - 1)); 
      lessonArray[index]=score; 
     }); 
     alert(name); 
    allLessonsArray[name]=lessonArray; 
    }); 
}); 
return allLessonsArray; 
} 

如何从前一个循环返回allLessonsArray,以便返回allLessonsArray?我不完全理解jQuery的面向对象方面,所以解释会很好。

+0

他们可能是在正确的顺序或顺序可能无关紧要。这取决于你想要做什么。您在第二个代码块中缺少报价。 – kojiro 2012-08-10 16:21:26

+0

感谢您的通知(代码不是完整的代码片段)。 我想在这种情况下做的是从先前打开的页面中选择每个r1.lastrow td.cell.c0,然后提取内容。 – 2012-08-10 16:29:07

+0

@NathanLothamer'data'是服务器的响应(整个html页面),你在寻找整个页面放入'td.cell'吗?如果不是,你需要过滤掉你需要的元素。 – 2012-08-10 16:36:08

回答

0

在$不用彷徨网址参数的末尾删除最后一个引号?

$.get('http://example.com/learn/mod/lesson/report.php?id='+lesson+'&action=reportdetail&userid='+userid+'&try='+lastAttempt, success: function(data) { 
    var page = $(data); 

    var lessonArray= new Array(); 
    //loop through each element and grab the text 

    $('r1.lastrow td.cell.c0').html(page).each(function(index, content) { 
     score=parseInt(content.substr(content.length - 1)); 
     lessonArray[index]=score; 
    }); 

    allLessonsArray[name]=lessonArray; 
}); 
0

变化可以说

var page = data; 

“数据” 是简单地响应字符串,它不是一个jQuery对象。根据您向我们展示的逻辑,我看不到任何其他问题。

P.S.对方的回答也是在最后的报价正确的,如果该URL

0

,如果我猜测正确,你正在寻找这个

$.get('http://example.com/learn/mod/lesson/report.php?id=' + lesson + ' & action = reportdetail & userid = ' + userid + ' & try = ' + lastAttempt, function(data) { 
    var page = $(data); 

    var lessonArray = new Array(); 

    //loop through each element and grab the text 
    page.find('tr.r1.lastrow td.cell.c0 ').each(function(index, content) { 
     score = parseInt(content.substr(content.length - 1)); 
     lessonArray[index] = score; 
    }); 

    allLessonsArray[name] = lessonArray; 
});​ 

PS

我很想知道,是 HTML有没有 r1标签?

+0

不,没有r1,只是没有包括'tr。' 。此代码是从笔记派生的,所以并非一切都准确无误。是否找到获取内容? – 2012-08-10 17:05:39

+0

@NathanLothamer你试过了吗? – 2012-08-10 17:17:36