【问题标题】:csQuery select element from manipulated dom?csQuery 从被操纵的dom中选择元素?
【发布时间】:2016-08-24 15:15:57
【问题描述】:

我正在从一个运行良好的文件中渲染 dom。 然后我使用带有点击事件的 jQuery 操作 dom。

我的问题是: 我现在如何从后面的代码中获取被操纵的元素?

$(document).ready(function() {
  var x = $(".class");

  x.on("click", function() {
    $(this).addClass("editable");
  });
});
public static string filePath = HttpContext.Current.Request.PhysicalApplicationPath;
public static string file = filePath + "/templates/index.html";
public CQ dom = CQ.CreateFromFile(file);

protected void Page_Load(object sender, EventArgs e)
{
    var html = dom.Render();
    if (!IsPostBack)
    {
        Response.Write(html);
    }
}

protected void btnSave_OnClick(object sender, EventArgs e)
{
  var editable = dom.Select(".simplecms.editable").Text();
// Obviously this string will contain the value from the original dom, how can I retrieve the manipulated dom here?
}

【问题讨论】:

    标签: jquery dom csquery


    【解决方案1】:

    一旦代码在浏览器中生效,它将不再(必然)反映文件中的结构。浏览器偶尔会在其 DOM 模型中添加额外的标签以进行规范化,甚至在您从 jQuery 操作任何内容之前也是如此。因此,您不应该期望能够从文件系统中检索它。

    此时,任何问题的标准答案都可以归结为“如何在运行时从我的网页获取(任何类型的)数据到我的服务器?”是在您的服务器上实现一个 REST 接口并使用 AJAX 将您需要的任何数据发送到服务器。 jQuery 有a great AJAX interface,您可以轻松地执行$(body).html()$('.some#selector').html() 之类的操作来获取要发送到服务器的字符串表示。根据您的服务器设置,棘手的部分可能是设置 REST 接口,但这有点超出了这个问题的范围。从 REST 端点收到字符串后,您应该可以使用 CQ.Create(htmlString) 为 CsQuery 生成 DOM。

    【讨论】:

    • 感谢您的回复 - 虽然不是我希望的答案。我确信有一种更简单的方法可以解决我的问题 :) 我会继续调查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2012-05-22
    • 2012-08-02
    • 1970-01-01
    相关资源
    最近更新 更多