2016-04-29 35 views
0

我從一個很好的文件渲染dom。 然後我通過點擊事件來操縱jQuery。csQuery從被操縱的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

一旦代碼是活在瀏覽器中,它將不再(必然)反映在文件中的結構。即使在你操縱jQuery中的任何東西之前,瀏覽器偶爾也會爲其規範化目標添加額外的標籤以達到規範化目的。因此,您不應該期望能夠從文件系統中檢索它。

這個問題的標準答案就像這個問題一樣,歸結爲「在運行時我如何從我的網頁獲取數據(任何種類)到我的服務器?是在你的服務器上實現一個REST接口,並使用AJAX發送你需要的任何數據給服務器。 jQuery有a great AJAX interface,你可以很容易地做一些像$(body).html()$('.some#selector').html()這樣的字符串表示來發送到你的服務器。棘手的部分,取決於您的服務器設置,可能會設置REST界面,但這有點超出了這個問題的範圍。從REST端點收到字符串後,您應該可以使用CQ.Create(htmlString)爲CsQuery生成您的DOM。

+0

感謝您的回覆 - 不是我希望的答案。我相信有一個更簡單的方法來解決我的問題:)我會繼續調查。 – MartinDK81