如何在phpquery中链接(几乎所有东西都可以是一个链)

时间:2014-01-17 10:13:08

标签: php jquery phpquery

大家好日子,   我是非常新的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

有人可以告诉我为什么第二段代码无效吗?

谢谢!

2 个答案:

答案 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();

希望有所帮助