直接提问:
我有一些带有一些数据的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());
但它有点......
谢谢!
答案 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();
如果您还有其他问题,请随时告诉我。