创建新的CsQuery对象而不继承

时间:2013-08-12 20:13:42

标签: jquery csquery

直接提问:

我有一些带有一些数据的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());

但它有点......

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,我谦卑地建议new 1.3 creation syntax超过旧版本:

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

如果您还有其他问题,请随时告诉我。