Javascript 浏览器控制台和PhantomJS之间的jQuery选择器输出不同

Javascript 浏览器控制台和PhantomJS之间的jQuery选择器输出不同,javascript,jquery,node.js,phantomjs,Javascript,Jquery,Node.js,Phantomjs,为什么同一个jQuery选择器会得到不同的结果 网站: node.js/(桥)代码: 这是浏览器控制台中的输出: var flight = []; undefined $('table.resultUnitMini tbody tr:nth-child(2) td span span').each(function(){ flight.push($(this).html()); }); flight ["G8-345", "9W-305", "AI-677", "AI-666", "AI

为什么同一个jQuery选择器会得到不同的结果

网站:

node.js/(桥)代码:

这是浏览器控制台中的输出:

var flight = [];
undefined
$('table.resultUnitMini tbody tr:nth-child(2) td span span').each(function(){
    flight.push($(this).html());
});
flight
["G8-345", "9W-305", "AI-677", "AI-666", "AI-605", "AI-101", "G8-337", "6E-168", "6E-176", "6E-172", "6E-174", "6E-186", "6E-182", "G8-343", "6E-198", "G8-319", "G8-339", "G8-341", "6E-194", "6E-196", "6E-192", "AI-633", "AI-633", "AI-864", "AI-660", "AI-658", "G8-329", "9W-390", "9W-351", "G8-327", "6E-188", "G8-334", "6E-183", "6E-179", "AI-349", "AI-634", "AI-634", "AI-636", "AI-636", "6E-171", "SG-131", "G8-330", "6E-167", "SG-109", "G8-332", "G8-336", "6E-189", "6E-169", "G8-340", "SG-458", "G8-342", "SG-125", "G8-344", "6E-181", "6E-175", "6E-191", "6E-187", "AI-657", "AI-665", "AI-887", "AI-865", "6E-905", "AI-102"]
终端中的输出为:

[ 'G8-345',
  '9W-305',
  'AI-633',
  'AI-633',
  'G8-334',
  '6E-183',
  'AI-634',
  'AI-634',
  '6E-171' ]

PhantomJS(1.x)中的第n个子CSS选择器似乎已损坏。对于您的页面,您不需要它。只需将其移除即可

$('table.resultUnitMini tbody tr td span span').each(function(){
    flight.push($(this).html());
});
当您遇到这样的问题,并且需要第n个子项或类似项时,请对第二个子项使用一些技巧,如
表tr+tr td span
,或者使用XPath,因为它似乎没有损坏:

var iterator = document.evaluate("//table[contains(@class,'resultUnitMini')]//tr[2]//td//span//span", 
        document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null),
    element = iterator.iterateNext();
while(element){
    // do something with element here
    element = iterator.iterateNext();
}

我正在使用phantomjs节点,请参见此处:
var iterator = document.evaluate("//table[contains(@class,'resultUnitMini')]//tr[2]//td//span//span", 
        document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null),
    element = iterator.iterateNext();
while(element){
    // do something with element here
    element = iterator.iterateNext();
}