2011-02-11 105 views
2

我有一個文本區域,我正在填充html代碼,供人們從中刪除&粘貼。這個textarea使用JQuery和.html()來「填充」。與「人口」從<div>頁面例子在其他地方來:JQuery .html()打印準確的html代碼

的div「舉辦的‘人口’

<div id="populationhold">this is the html to copy</div> 

那麼‘JQ的魔術’‘點擊’按鈕,然後填充textarea的

$('#button').click(function(){ 
updatefunction(); 
}); 

和updatefunction是有點像這樣:

function updatefunction(){ 
$('#textarea').html($('#populationhold').val(); }); 
} 

現在如果我嘗試像這樣的東西來填充:

$('#textarea').html('this is the <br />html to copy'); 

的html的()將只打印<br><br />。我試過了(用我的方式逃避<br \/>,但那不行。建議請,因爲我必須「產生」乾淨的XHTML代碼不僅僅是HTML4代碼

下一位是概率只是相同,但有點更復雜的 - 因此上面的領導到這個

爲「用戶」我的網站,你將能夠從代碼示例添加/刪除位:

<div id="populationhold"> 
<div class="codebit1">this is the <br />html to copy</div> 
\n<br/>\ 
<div class="codebit2">this is more <br />html to copy</div> 
</div> 

$('#button').click(function(){ 
$('#textarea').html($('#populationhold').val(); 
}); 

填充textarea的是罰款和工作,所以「90%」的刪除。這是這樣的:

$('#deletebutton').click(function(){  
$('.codebit1').remove(); 
// This removes .codebit1 from #populationhold and runs the update to ummm update the textarea with the update function 
// Note: remove() is OK in this case as #codebit1 is totally dynamically created 
updatefunction(); 
}); 

這裏的問題是好的我可以刪除/刪除需要刪除的位 - 因此「90%」,但我怎樣才能擺脫「現在的孤兒」\n<br/>\n用於分隔#textarea中的2個div 。好吧,我可以在沒有\n<br/>\n的情況下做到這一點,但它會讓代碼複製到「不整齊」的眼睛上,這就是爲什麼\n<br/>\n在那裏的原因--也確保當代碼被真正複製時,用戶會得到合理的佈局。

+1

您是否使用了正確的文檔類型? – 2011-02-11 11:59:20

+0

@Timo我正要問同樣的事情...... – 2011-02-11 12:03:28

回答

1

我在想你在做什麼是不正確的。

A <textarea>是一個多行輸入對象。所以,你不想使用$('#textarea').html()函數(我認爲它不存在<textarea>),但你想用$('#textarea').val()函數來更新它的內容。

如果你做$('#textarea').val('this is the <br />html to copy'),你會得到正確的結果。

另一方面,您確實想要使用.html()而不是.val()作爲$('#populationhold')對象,因爲您正在檢索它的值並且它是子級。

關於innerHTML的和XHTML

XHTML和innerHTML的是沒有朋友。他們只是不一起工作。如果您將文檔作爲xhtml/xml提供,那麼您將遇到麻煩。它沒有意義,XML中的innerHTML。

<element>value 
<child>childvalue</child> 
</element> 

innerHTML的僅僅是得到元素的值的函數,然後concatinates這是兒童的名字和值......這只是一些字符串操作。

半解

史蒂夫·塔克創建innerXHTML功能。你可以看到它在這裏工作:

http://jsfiddle.net/pYUD4/10/

有,但是,有一件事你<br />轉換爲<br></br>,但是但是,就我而言,這是有效的XHTML。我會嘗試編寫一個能夠很好地完成這項工作的函數,因爲現在似乎沒有辦法做到這一點。但這可能需要一段時間xD