2017-02-17 23 views
1

我在我的應用程序中用jquery使用tinymce。我也使用jQuery添加tinymce來在本地加載它。用jquery在TinyMCE textarea中選擇一個跨度

我很喜歡jquery noob,但我想我應該能夠像這樣得到它。

<h1 class="class">John</h1> 
<form> 
    <textarea id="id"> 
     <p>Hello <span class="class">John</span>,</p> 
    </textarea> 
</form> 

<script> 
    // Doesn't work for either 
    $('form#id.class').text('Mark'); 

    // Doesn't Work Either for the textarea but does the h1 
    $('.class').text('Mark'); 
</script> 

但當然它不工作,或者爲什麼我會張貼這個。我究竟做錯了什麼?

我正在導入jquery,並可以像這樣抓取其他東西,它的工作原理。

+0

http://stackoverflow.com/questions/4705848/rendering-html-inside-textarea –

+0

而不是'$( '#形式id.class')',選擇應是'$('form #id .class')'(注意form和#id之後的空格 - 它們表示選擇器的下一部分是後代)。當然,如果#id是唯一的(它應該是),所有你需要的是'$('#id .class')' – jbyrd

+0

這是正確的,只是jQuery我認爲問題與tinymce。這是一個痛苦。 – ahackney

回答

0

您是否正在導入jQuery庫?

如果不是,您將要下載jQuery here或使用可找到的CDN here

如果這不是你的問題,那麼看看jQuery的API文檔,看看你是否正確使用.text()。

這裏是鏈接:http://api.jquery.com/text/

而且,你不應該在一個文本使用HTML標籤。 Textareas將其中的所有內容呈現爲文本。您需要使用內容可編輯div,看起來像這樣<div contenteditable="true"></div>

+0

這是一種形式,所以我需要該部分作爲輸入。我怎樣才能做到這一點? – ahackney

0

<textarea>的內容是一個文本字符串。

所以你需要像操縱任何其他文本字符串一樣操縱它。

工作實施例:

var textArea = document.getElementsByTagName('textarea')[0]; 
 
var textAreaContent = textArea.textContent; 
 
textAreaContent = textAreaContent.replace('<span class="class">John</span>','<span class="class">Mark</span>'); 
 
textArea.textContent = textAreaContent;
<form> 
 
    <textarea id="id"> 
 
     <p>Hello <span class="class">John</span>,</p> 
 
    </textarea> 
 
</form>

N.B.以上的jQuery的本地JavaScript是:

$(document).ready(function(){ 

$('textarea').text($('textarea').text().replace('<span class="class">John</span>','<span class="class">Mark</span>')); 

}); 
0

當加載TinyMCE的更換<textarea>你不會自動與原始<textarea>同步的打字。一旦加載TinyMCE,你正在使用iFrame,而不是原來的<textarea>。當您使用標準表格提交表格時,提交表格前TinyMCE會自動更新下屬<textarea>。如果你想從編輯器中的電流值,你可以做兩件事情之一:

  • 使用get() API直接跟TinyMCE的
  • 使用triggerSave() API嘗試之前,需要手動更新基礎<textarea><textarea>

get() API的工作可以讓您針對頁面上的編輯器的特定實例,然後使用getContent() API來獲取數據。

triggerSave() API告訴TinyMCE的更新基礎<textarea>在此之後立即您可以在<textarea>的數據進行交互來獲得你所需要的。

+0

你願意給我一個我應該怎樣做我想做的事的例子嗎? – ahackney