大家好日子, 我是非常新的phpquery,这是我在stackoverflow的第一篇文章,原因是我无法找到正确的phpquery链接语法。我知道有人知道我一直在寻找什么。
我只想删除div中的某个div。
<div id = "content">
<p>The text that i want to display</p>
<div class="node-links">Stuff i want to remove</div>
</content>
这几行代码完美无缺
pq('div.node-links')->remove();
$text = pq('div#content');
print $text; //output: The text that i want to display
但是当我尝试
时$text = pq('div#content')->removeClass('div.node-links'); //or
$text = pq('div#content')->remove('div.node-links');
//output: The text that i want to display (+) Stuff i want to remove
有人可以告诉我为什么第二段代码无效吗?
谢谢!
答案 0 :(得分:0)
由于remove()
不接受任何参数,您可以执行以下操作:
$text = pq('div#content div.node-links')->remove();
答案 1 :(得分:0)
第一行代码仅在您尝试从div.node-links
中删除该类时才有效,它不会删除该节点。
如果您要删除该课程,则需要将其更改为:
$text = pq('div#content')->removeClass('div.node-links');
// to
$text = pq('div#content')->find('.node-links')->removeClass('node-links')->end();
将输出:
<div id="content">
<p>The text that i want to display</p>
<div>Stuff i want to remove</div>
</div>
至于第二行代码..我不确定为什么它不起作用,似乎你没有选择.node-links
但是我能够使用这些获得所需的结果。
// $markup = file_get_contents('test.html');
// $doc = phpQuery::newDocumentHTML($markup);
$text = $doc->find('div#content')->children()->remove('.node-links')->end();
// or
$text = pq('div#content')->find('.node-links')->remove()->end();
// or
$text = pq('div#content > *')->remove('.node-links')->parent();
希望有所帮助