我有一个看起来像这样的 HTML 表格:
<table id="xp">
<tbody >
<tr>
<td>
<input type="text" data-type="string" value="testvalue" class="text">
</td>
<td>
<input type="text" data-type="string" value="" class="text">
</td>
</tr>
</tbody>
</table>
现在我想使用 phpQuery 来改变输入的值,如下所示:
require('**********/phpQuery.php');
$newsURL = "http://***********/index.php";
$newspage = file_get_contents($newsURL);
if( $newspage )
{
$pq = phpQuery::newDocument($newspage);
foreach(pq('.text') as $stuffs)
{
$stuffs->val('ompalompa');
$this->assertEquals("ompalompa", $stuffs->val());
}
}
我正在使用 phpUnit assert 来查看结果,但我只是收到此错误:
//Call to undefined method DOMElement::val()
当我使用 val() 方法从第一个类元素中获取值时,如下所示:
$stuffs = pq('.text')->val();
$this->assertEquals("testvalue", $stuffs);
它工作正常并且断言通过
Time: 8 seconds, Memory: 3.25Mb
OK (1 test, 1 assertion)
正如我从 phpQuery 手册中了解到的,不带参数的 val() 只是使用选择的选择器获取第一个元素的值,而带有值的 val() 使用选择的选择器设置每个元素的值,如下所示。任何人都可以向我解释问题是我误解了文档还是我的代码中的其他内容被破坏了。
- val() 获取第一个匹配元素的 value 属性的内容。
- val($val) 设置每个匹配元素的 value 属性。