2013-09-30 27 views
0

我有一個段落<p>contenteditable="true",它的做工精細用我創造,如粗體每一個選項,斜體,BGCOLOR,...JQuery的或JavaScript,如何讓段落CONTENTEDITABLE平面文字


我在我的contenteditable段落中鍵入空格,並且當我通過以下代碼將該contenteditable段落的內容與字符串進行比較時,它會返回false!

console.log($('p[contenteditable="true"]').text()==" "); 
// return false 
console.log($('p[contenteditable="true"]').text()); 
// return " " char Code of this space is 160 

這太奇怪了!爲什麼發生? 和我上面的代碼試圖用.textContent和相同的結果發生

回答

0

我測試過你什麼張貼,它是工作。見jsfiddle

HTML:

<p contenteditable="true"> </p> 

的Javascript:

console.log(jQuery('p[contenteditable="true"]').text()); 
console.log(jQuery('p[contenteditable="true"]').text() == ' '); 
console.log(jQuery('p[contenteditable="true"]').text().charCodeAt(0)); 

返回:

" " 
true 
32 

請檢查您實際上是輸入一個空格(字符代碼32),而不是一不同的性格。

解決方案:

if(jQuery('p[contenteditable="true"]').text().charCodeAt(0) == 160){ 
    console.log('Space!'); 
} 

請參閱:HTML Char Code

+0

不!你在html代碼中寫空間!我用可愛的wysiwyg在段落中寫下了這個空間!和我的空間的char代碼是** 160 **! – Omid

+1

這就是我的觀點。在你的JavaScript你是匹配一個標準的空間(字符代碼32),但wysiwyg正在添加 (字符代碼160)。 – CharliePrynn

+1

我已經添加了一個解決方案。請看看它是否有效。 – CharliePrynn

0

嘗試

$('p[contenteditable="true"]').val() == " " 
+1

的jQuery VAL方法僅用於表單元素。 – CharliePrynn

相關問題