2012-10-19 102 views
2

我想將"someting "設置爲div內的html,但.html()似乎刪除了尾部空格。jquery .html()刪除尾部空格

它位於contenteditable div內,所以當用戶開始鍵入時,「某事物」和他鍵入的內容之間缺少空格。

HTML

<div id="text" contenteditable="true"></div> 

JAVASCRIPT

$('div#text').html('something   '); 

這顯示了DIV中 「something_」,但是當你開始輸入它似乎旁邊的文本的其餘部分。

+1

顯示您的代碼 – nu6A

+0

嘗試使用[innerHTML](https://developer.mozilla.org/en-US/docs/DOM/element.innerHTML)而不是 – Bogdan

+0

@spider基本上,'innerHTML'的作用與jQuery的'.html()'。 – VisioN

回答

5

爲了設置在HTML可見的空間,它們應該在的&nbsp;形式,例如

​$("#text").html("something&nbsp;&nbsp;")​​​​; 

一種選擇是使用自己的功能,使基本的空間改造:

function spaceToNbsp(str) { 
    return str.replace(/ /g, "&nbsp;"); 
} 

$("#text").html(spaceToNbsp("something "))​​​​; 

DEMO:http://jsfiddle.net/NAWY3/

+0

這很好,我只需要添加一個「如果最後一個字符是空格,然後用非破壞空間替換它」。 – Manu

+0

(我不能改變所有空格,否則會溢出到右邊) – Manu

+1

@Manu沒問題。正則表達式可以幫助:'替換(/ $ /,「 」)。 – VisioN

1

嘗試使用&nbsp;而不是空格:

$('#div_id').html("something&nbsp;"); 
0

如果你喜歡它使用css

HTML

<div contenteditable="true" id="test"></div> 

CSS

div#test:before{ 
    content: '>\0000a0\0000a0'; 
    /*or content: 'Something\0000a0\0000a0';*/ 
} 

DEMO