2016-01-24 97 views
2

我試圖讓我的客戶端通過訪問該頁面來更改所有段落內容,即以純WYSIWYG模式。在線更改源代碼

例如,點擊第一段,他會在現有內容之前添加​​。

<p>123</p> 
<p>456</p> 
<p>789</p> 

JS

$("p").attr('contenteditable', true); 

$("#btnsave").click(function() { 
    var a = `currentParagraph.newContent`; 
console.log(a) //I need `green 123` here 
}); 

如何獲得編輯的內容作爲一個變量?

此外,爲了更改服務器源代碼,我將使用php-jquery ajax代碼發送新內容,但是如何告訴服務器應該在哪個段落上應用新內容?

任何幫助?

+0

你標記爲PHP沒有代碼支持的問題。 –

回答

2

嘗試使用連接到p元素,.index()input事件,$.post()

var curr = null; 
 

 
$("p").attr('contenteditable', true).on("input", function() { 
 
    curr = $(this).index() -1 
 
}) 
 

 
$("#btnsave").click(function() { 
 
    var a = $("p").eq(curr).text(); 
 
    console.log(a, $("div").html()); //I need `green 123` here 
 
    // post `p` elements to server 
 
    // $.post("/path/to/server", {data:$("div").html()}) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<div> 
 
<p>123</p> 
 
<p>456</p> 
 
<p>789</p> 
 
    </div> 
 
<button id="btnsave">click</button>

+0

非常感謝,我看到第一部分很好,但是,請解釋(或者寫一個代碼)如何告訴服務器哪一段應該應用新內容? – bonaca

+0

'curr'變量是最後編輯的'p'元素的索引。但是,由於'button'可以隨時點擊,例如,在所有'p'元素'html'改變之後,在'js'上面的方法是將所有'p'元素的'html'發送到服務器 – guest271314

+0

謝謝,解決了(我希望)。 – bonaca