4

直接问问题:

我有一些数据的 CsQuery 对象。

 CQ html=new CQ("<div id='wrapper'> <p id='getIt'></p> </div>");

我想获取 p 并将其分配给一个新的 CQ 对象:

 Cq newHtml=html["p"];

当我这样做时,它也继承了原始的 DIV。如何使 p 元素成为“根”。?

我一直在尝试一切:

html.MakeRoot()之后,如果我使用 .Select() 它仍然返回 DIV。

我也尝试使用 .Find函数(它在所选元素内搜索)但它没有解决我的问题,因为我使用了一个使用.Select()的第三方库函数......

我知道我可以做这样的事情

    CQ html=new CQ(html["p"].RenderSelection());

但这有点……

谢谢!

4

1 回答 1

2

首先,我谦虚地建议新的 1.3 创建语法优于旧的:

CQ html=CQ.CreateFragment("<div id='wrapper'> <p id='getIt'></p> </div>");

现在,如您所愿,我们想要获取内部 p 元素,然后创建一个新的 DOM 上下文,我们可以通过再次调用构造方法来做到这一点。我认为代码会更容易:)

 CQ html = CQ.CreateFragment("<div id='wrapper'> <p id='getIt'>Hello</p> </div>");
 //Create a _new_ context
 CQ newHtml=CQ.CreateFragment(html["p"]);
 newHtml.Text("World");
 Console.WriteLine("{0} {1}",html["p"].Text(),newHtml.Text());//Hello World
 Console.Read();

如果您还有任何问题,请随时告诉我。

于 2013-08-15T04:25:35.143 回答