我正在从一个工作得很好的文件渲染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?
}
答案 0 :(得分:0)
一旦代码在浏览器中生效,它将不再(必然)反映文件中的结构。浏览器偶尔会在其DOM模型中添加额外的标签,以便在从jQuery操作任何内容之前进行规范化。因此,您不应期望能够从文件系统中检索它。
此时的标准答案是任何可以归结为问题的问题,例如,如何在运行时从我的网页到我的服务器获取数据(任何类型)?"是在服务器上实现REST接口,并使用AJAX将所需的任何数据发送到服务器。 jQuery有a great AJAX interface,您可以轻松地执行$(body).html()
或$('.some#selector').html()
之类的操作来获取要发送到服务器的字符串表示形式。根据您的服务器设置,棘手的部分可能是设置REST接口,但这有点超出了这个问题的范围。从REST端点收到字符串后,您应该可以使用CQ.Create(htmlString)
为CsQuery生成DOM。