按索引获取元素,[n]

时间:2013-07-03 14:57:44

标签: php jquery phpquery

我正在使用PHPQuery从HTML中读取一些内容,我无法使用方括号表示法获取元素。

见这个简单的例子:

$html = '<div><table id="theTable"><tr><td>FIRST TD</td><td>SECOND TD</td><td>THIRD TD</td></tr></table></div>';

$pq = phpQuery::newDocumentHTML($html);

$table = $pq->find('#theTable');
$tds = $table->find('td');

echo "GETTING BY INDEX:\n\n";
echo '$tds[1] = ' . $tds[1];

echo "\n\n\n";

echo "GETTING IN FOREACH:\n\n";
foreach($tds as $key => $td){
    echo '$tds[' . $key . '] = ' . pq($td) . "\n";
}

这个输出是:

  

按指数排名:

     

$ tds [1] =

     

进入前面:

     

$ tds [0] = FIRST TD

     

$ tds [1] = SECOND TD

     

$ tds [2] = THIRD TD

我原本以为我可以使用方括号获取$tds[1]的内容,但似乎没有。 我如何通过索引获取它?

3 个答案:

答案 0 :(得分:2)

尝试var_dump($tds),它会告诉你什么是tds内部。也许这些键实际上是字符串,您应该使用:

echo "GETTING BY INDEX:\n\n";
echo '$tds['1'] = ' . $tds['1'];

编辑:另外,在你的foreach上你正在使用pq(),也许你应该使用这个

echo "GETTING BY INDEX:\n\n";
echo '$tds[1] = ' . pq($tds[1]);

答案 1 :(得分:1)

在发布问题后找到答案。您需要使用eq(n)

而不是方括号
echo '$tds[1] = ' . $tds->eq(1);

答案 2 :(得分:0)

尝试以下方法:

echo '$tds[1] = ' . $tds['1'];